【发布时间】:2014-06-10 14:45:36
【问题描述】:
在 grails 中保存域类的新实例后,我有一个“创建另一个这样的”按钮,它会打开另一个创建屏幕,其中的字段填充了我刚刚创建的实例的值。
在第一次尝试中,我将所有现有字段值作为参数传递到备用创建按钮中:
<g:link class="create" action="create"
params="[app:volInstance.app.id,
ass:volInstance.assessment.id,
name:volInstance.volName,
type:volInstance.volType.id,
note:volInstance.volNote,
recommendation:volInstance.recommendation,
discovered:volInstance.dateFound,
url:volInstance.urlParam]">
Create Another like this
</g:link>
然后在下一个create.gsp上做很多<g:if>看看参数是否存在。然后我将实例 ID 作为参数发送
<g:link class="create" action="create"
params="[vid:volInstance.id]">
并更改了控制器中的创建方法。这简化了事情(不再有一个巨大的参数列表):
def create() {
if (params.vid) {
def id = params.vid
def v = Vol.findById(id)
params.volNote = v?.volNote
params.volType = v?.volType
etc......
}
respond new Vol(params)
}
这很好用,消除了所有的<g:if>s,但仍然有很多行 params.x = v.x
有没有办法摆脱这些行并将对象作为参数传递?
【问题讨论】:
标签: grails