如果Command值为null,如何设置默认值

时间:2015-03-30 11:48:17

标签: grails

我们在命令中使用Grails 2.4.3

@Validateable
class FreeTextSearchCommand {
    String freeText="*"
    int pageSize=1
    int pageIndex=1
}

在控制器

def freeTextSearch(FreeTextSearchCommand freeTextSearchCommand){}

因此,如果值来自客户端站点为空,那么我希望我的默认值设置,但它不起作用

1 个答案:

答案 0 :(得分:2)

  

因此,如果值来自客户端站点为空,那么我想要我的默认值   值集,但不起作用

如果将null绑定到属性,则结果应为null。这就是数据绑定器的作用,它是绑定器应该做的事情。如果你想强加一些自定义规则,你可以通过多种方式做到这一点。一种是使用BindUsing注释。

@Validateable
class FreeTextSearchCommand {
    @BindUsing({obj, source ->
        // bind '*' if there is no corresponding request parameter value...
        source['freetext'] ?: '*'
    })
    String freeText

    // etc...
    int pageSize=1
    int pageIndex=1
}

有关详细信息,请参阅http://grails.github.io/grails-doc/2.4.3/guide/theWebLayer.html#dataBinding

我希望有所帮助。