获取grails中单击的提交按钮的名称

时间:2010-04-29 20:07:15

标签: grails

在表格上我有两个提交按钮:

<g:submitButton name="add" value="Add"/>
<g:submitButton name="addAnother" value="Add and Create Another"/>

我需要根据用于提交表单的按钮采取稍微不同的操作。如何获取控制器中单击按钮的名称?

2 个答案:

答案 0 :(得分:6)

点击按钮的名称以params结尾:

if(params["addAnother"])
   doThis()
else
   doThat()

答案 1 :(得分:0)

来自标签docs:

  

actionSubmit
  生成一个映射到特定操作的提交按钮,   这使您可以在一个表单中有多个提交按钮。 (......)   当您在表单中使用常规提交按钮时,它就是表单   本身确定请求发送到哪个URL,因此   执行什么操作。但是,此标记会覆盖该行为   并确定执行哪个动作。请注意,它仍然是   确定目标控制器的表单。

<g:form controller="book">
    <g:actionSubmit value="click to update" action="update" />
    <g:actionSubmit value="click to delete" action="delete" />
</g:form>

虽然您提到每个按钮的操作之间存在“轻微差异”,但在grails标记中,我建议将actionSubmit作为将表单数据传递给控制器​​中不同行为(操作)的首选方式。即使您之间存在大多数常见行为,也可以考虑重构控制器代码,而不是在操作中测试请求参数。