【发布时间】:2013-08-29 12:55:39
【问题描述】:
在 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
])
}
我有许多这样的标记库,其中来自 gsp 的属性被复制到标记库中的模型以在模板中呈现。似乎应该有一种更简单的方法将 attr 字段复制到模型中,而不是一个一个地分配每个变量。
类似于“使用现有地图键作为键名从现有地图创建新地图,然后将原始地图值分配给新地图”。
有什么想法吗?只是将 attrs 传递给模板是行不通的。
【问题讨论】:
-
所以
render(template:"/common/wizard/formselect", model:attrs)不起作用?你有错误吗? -
哇,是的。我已经学习 grails 3 周了,感谢您的帮助。
-
酷 :-) 将其添加为答案。很高兴我能帮忙:-)