Grails模式在错误时重用模板

时间:2010-05-13 04:11:13

标签: grails gsp

我有一个gsp模板,其中create视图的数据通过控制器传递。

def create = {
    def bookInstance = new Book()
bookInstance .properties = params
def map = getDefaultValues()
render(template: "create", model: [bookInstance : bookInstance ,
            title: map.title,
            somelist: somelist
            ....])

gsp模板

 <g:select optionKey="id" from="${somelist}" name="somelist.id" value="${bookInstance ?.somelist?.id}" noSelection="['null': '']"></g:select>

现在,在save方法中,如果有错误,它会返回当前填充和验证的实例(默认的脚手架实现)

render(template: "create", model: [bookInstance : bookInstance ])

但是gsp中的字段(从保存操作呈现的错误页面)是空的。我可以看到原因,因为它看起来"${somelist}"中的值,但它不用于保存方法。我只需要在gsp中检查null并使用任何可用的地图,或者任何更好的方法(在save方法中传递所有地图都不是一个选项)..
提前谢谢..

1 个答案:

答案 0 :(得分:1)

我想通了..我必须传递与创建闭包相同的地图..我们在create中传递地图的原因是因为我们想要覆盖默认列表.. bookInstance中的填充值仅用于保留用户选择,但不是用于保留所有值..