我有一个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方法中传递所有地图都不是一个选项)..
提前谢谢..
答案 0 :(得分:1)
我想通了..我必须传递与创建闭包相同的地图..我们在create中传递地图的原因是因为我们想要覆盖默认列表.. bookInstance中的填充值仅用于保留用户选择,但不是用于保留所有值..