如何将由组合框表示的Grails中的字段设为可选字段?

时间:2009-01-16 22:09:36

标签: grails groovy constraints gorm

我正在使用Grails进行我的第一次实验,并且正在寻找一种方法来使组合框表示的字段(例如一对一的域关联和具有窄范围约束的数字)是可选的,即应该是可选的是组合框中的空条目。

如何实现这一目标?我已尝试添加nullable:true约束并列出optionals静态属性中的字段,但都不会产生所需的结果。

这些是我的域类:

class Customer {
    String name
}
class Book {
    static optionals = ['year','loanedTo','loanedSince']
    static constraints = {
    title(blank:false)
    author(blank:false)
    year(range:1900..new Date().getAt(Calendar.YEAR), nullable:true)
    loanedTo(nullable:true)
    loanedSince(min:new Date())
    }

    String title;
    String author;
    Integer year;
    Customer loanedTo;
    Date loanedSince;
}

4 个答案:

答案 0 :(得分:3)

我发现nullable:true约束实际上确实具有预期效果 - 但是,它不会立即生效;你必须重新启动Grails才能看到它。

答案 1 :(得分:1)

如果您已经生成了脚手架代码,那么您还必须重新生成脚手架代码,以便存在该选项。

答案 2 :(得分:1)

我认为optionals仍然不受支持:http://jira.codehaus.org/browse/GRAILS-472

答案 3 :(得分:0)

标签还有一个默认属性“未选中”值:noSelection。您可以像这样使用下拉默认为“---”而不是常规值: NOSELECTION = “$ {[ '': '---']}”

在控制器中,默认值显示为空字符串,如值的第一部分所指定。