IT序号网

grails之grails xml解码

jackei 2026年07月24日 编程语言 57 0

从Grails 1.1.x开始,他们已经支持REST请求的XML和JSON解码。我似乎无法在2.1.0版中使用此功能。这是我用来测试功能的示例项目中的相关文件:

  • UrlMappings.groovy
    static mappings = { 
        "/$action/$id?"(controller:'verification',parseRequest:true) 
     
        "/"(view:"/index") 
        "500"(view:'/error') 
    } 
    
  • Tester.groovy
    class Tester { 
        String name 
        String vendor 
     
        String toString() { 
            return "$name $vendor" 
        } 
    } 
    
  • VerificationController.groovy
    class VerificationController { 
     
        def save() { 
            Tester tester = new Tester(params.tester) 
            log.error "Tester = ${tester}" 
            log.error "Request XML = ${request.XML}" 
        } 
    } 
    
  • XML与REST调用一起发送
    <?xml version="1.0" encoding="utf-8"?> 
    <tester> 
        <name>Windows</name> 
        <vendor>Microsoft</vendor> 
    </tester> 
    

  • 当我传递XML时, Controller 日志语句输出以下内容:
    Tester = null null 
    Request XML = WindowsMicrosoft 
    

    我的困惑在于为什么将其识别为XML(通过将其放入请求的XML字段中)但不会解析它并将其放入 here定义的参数中

    请您参考如下方法:

    经过几个小时的尝试,我发现了一个解决方案。

    我的问题是我在REST调用中没有定义内容类型。

    因此,如果将content-type: application/xml添加到其余调用中,它应该可以工作。


    评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!