person.properties = params做什么?
答案 0 :(得分:2)
嗯,简短的回答是它将params映射中的任何键与person对象的属性匹配,将params映射中的值赋给匹配的属性。
示例:假设params.id = 156并且person有一个名为id的成员属性。在此次通话之后,person.id将等于156。
一些注意事项:
答案 1 :(得分:1)
在幕后,Groovy / Grails对象上的属性是域类属性的映射。 params对象也是请求参数的映射 - 基本上是HttpServletRequest对象的CGI参数。因此,赋值将使用params映射中的值更新属性映射,仅在它们匹配的位置。
如果你是用直接的Servlets& JSP本质上是你写的:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Person person = new Person();
person.firstName = request.getParameter('firstname');
person.lastName = request.getParameter('lastname');
person.password = request.getParameter('password');
...
}
使用Grails,您基本上只需在PersonController.groovy中编写:
def save = {
def person = new Person()
person.properties = params
...
}
因此,使用Grails,您不必过多担心参数名称是什么,因为您应该使用grails标记输出它们,然后使用params映射将它们返回到对象中。这可以减少误导参数名称时遇到的愚蠢错误。
您还可以向Person域对象添加更多属性,而不必编写更多getter / setter类型语句。
答案 2 :(得分:0)
它使用提供的请求参数更新person
对象上的属性值。这称为数据绑定,并记录在案here。