Grails 1.1 Web服务 - XML序列化 - 更新

为支持PUT 和 POST 你可以使用 params 对象。Grails中params对象具有读取XML数据包的能力。

如下面的XML数据包:<?xml version="1.0" encoding="ISO-8859-1"?> <product> <name>MacBook</name> <vendor id="12"> <name>Apple</name> </vender> </product>你可以通过在 数据绑定章节描述过的同样的方法,通过 params 对象来读取XML数据:def save = { def p = new Product(params['product']) if(p.save()) { render p as XML } else { render p.errors } }在这个例子中,通过提取 params 对象中的 'product’对应的值,我们可以通过Product的构建器自动创建和绑定XML数据 。

注意这一行:def p = new Product(params['product'])这里我们不需要修改任何代码就可以以处理XML数据请求的方法处理表单提交。

同样的方法也可以用来处理JSON请求.

如果需要对不同的客户端(REST,HTML等)提供不同的响应,你可以使用 content negotation The Product object is then saved and rendered as XML, otherwise an error message is produced using Grails’ validation capabilities in the form:<error> <message>The property 'title' of class 'Person' must be specified</message> </error>