我使用grails中的库存屏幕几位来节省时间。我同时拥有编辑和创建视图,两者都非常相似(编辑视图有一些额外的隐藏字段来存储场景的ID等)。
在我的控制器中,我有一些基本的方法,一个名为save one的称为update,它们最终都会转到一个新的saveAll方法(save方法会事先做一点,以便最初插入一些表条目并得到一个id,而更新只是直接进入saveall方法,而不做任何其他事情。)
saveall方法执行清除/更新和将数据插入表格的所有工作(因为我使用了大量需要更新的连接表)。
我的思维过程是创建按钮通过save方法,更新按钮通过更新方法。所以,如果我复制"创建"从创建页面按钮并将其粘贴到编辑页面然后我实际上得到了一个"克隆"按钮(因为它应该经历插入新记录而不是更新现有记录的过程。)
然而,当我点击那个按钮时根本没有任何事情发生,它只会回到列表视图,我不知道我错过了什么。可能是非常基础的东西,任何人都有任何线索?
创建页面上的创建按钮如下所示: -
Grails的
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
HTML
<input id="create" class="save" type="submit" value="Create" name="create">
复制到编辑页面的相同按钮看起来完全一样,所以为什么它根本不做任何事情(我甚至在println中添加到保存方法中并且没有受到了打击。)
希望有人能指出我在这里犯下的明显错误,因为我迷失了!
答案 0 :(得分:1)
抱歉,我是个白痴。我需要做的就是复制保存行并将动作“更新”改为“保存”,嘿presto一切都很好。
所以我复制了: -
<g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />
并将其更改为: -
<g:actionSubmit class="save" action="save" value="Clone" />
现在一切都很好!