grails从attrs创建模型

时间:2013-08-29 12:55:39

标签: grails groovy gsp

gsp 中,我将参数传递给 taglib ,如下所示:

        <g:oneColumnSelect fieldName="gender" from="${['F', 'M']}"
                           valueMessagePrefix="applicant.gender"
                           value="${command?.gender}" noSelection="${['':'No answer...']}" />

taglib 中,我将参数分配给模型,然后传递给gsp模板,如下所示:

class FormsTagLib {

def oneColumnSelect = {attrs, body ->
    out << render(template:"/common/wizard/formselect",
            model:[
                    fieldName:attrs.fieldName,
                    from:attrs.from,
                    valueMessagePrefix:attrs.valueMessagePrefix,
                    optionValue:attrs.optionValue,
                    value:attrs.value,
                    noSelection:attrs.noSelection
            ])
}

我有很多这些taglib,其中来自gsp的attrs被复制到标记lib中的模型以在模板中呈现。似乎应该有一种更简单的方法将attr字段复制到模型中,而不是逐个分配每个变量。

类似'使用现有地图键作为键名从现有地图创建新地图,然后将原始地图值指定给新地图'。

有什么想法吗?只是将attrs传递给模板不起作用。

2 个答案:

答案 0 :(得分:1)

只需致电

 render(template:"/common/wizard/formselect", model:attrs)

应该这样做!玩得开心!

答案 1 :(得分:0)

也许Map.putAll()可以帮到你:

def first = [a: 1, b: 2]
def second = [c:3]
second.putAll(first)
println second // prints [c:3, a:1, b:2]
相关问题