Grails中的DataBinding数据绑定

数据绑定是将request提交的参数“绑定”到一个对象的属性或者一个完整的对象的行为。数据绑定将处理所有来自请求参数必要的类型装换,典型的传送通过表单提交 , 参数类型始终是字符串,尽管Groovy或Java对象的属性可能不一定是字符串。

方式一:

    def save={

        def b = new Book(params)

        b.save()

       }

 

方式二:

    def save={

        def b = Book.get(params.id)

        b.properties = params

        b.save()

       }

 

假如有个请求:/book/save?book.title=The%20Stand&author.name=Stephen%20King

方式三:

def b = new Book(params['book'])

def a = new Author(params['author'])

 

方式四:

def p = Person.get(1)

p.properties['firstName','lastName'] = params

这种情况下,只有firstName和lastName被绑定

 

方式五:

使用bindData方法

def p = new Person()
bindData(p, params)    //将params绑定到对象p上

bindData(p, params, [exclude:'dateOfBirth'])    //将params中除了dateOfBirth之外的属性绑定到对象p

bindData(p, params, [include:['firstName','lastName]])   //只绑定params的firstName和lastName属性刀对象p

 

类型转换

数据绑定时,经常会遇到类型转换的情况,Grails1.2.2提供了一种简单的方式进行转换

def total = params.int('total')

grails将total自动转换为int绑定到total变量。除了int方法外,Grails1.2.2还提供了boolean, long, char, short等方法。这些方法都进行了null安全和解析时的安全转换,所以不用进行额外的检查。

以上方法还支持GSP的标签库参数。

你可能感兴趣的:(GRAILS)