为支持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>