dab*_*aba 0 forms model-view-controller spring spring-roo jakarta-ee
我正在开发一个使用 J2EE 和 Spring Roo 作为框架的 Web 应用程序。
我想创建一个带有两个提交按钮的表单:
另一个用于保存和完成
<form action="mycontroller" method="post">
<input type="submit" value="Save and continue"/>
<input type="submit" value="Save and finish"/>
</form>
所以我可以选择将数据存储在数据库中并添加更多条目,或者存储数据并完成该过程。
如何检查在处理操作的控制器的方法中单击了什么提交按钮?
public class MyController {
void actionMethod(...) {
// check which submit was clicked
}
}
Run Code Online (Sandbox Code Playgroud)
您应该为两个按钮添加一个名称字段:
<input type="submit" name="button" value="Save and continue"/>
<input type="submit" name="button" value="Save and finish"/>
Run Code Online (Sandbox Code Playgroud)
进入控制器后,您可以通过此名称字段恢复元素并检查其值字段:
String field = request.getParameter("button");
if ("Save and continue".equals(button)){
// Do stuff
}
else if ("Save and finish".equals(button)){
// Do a different stuff
}
else {
// None of them were pressed
}
Run Code Online (Sandbox Code Playgroud)
或者,您也可以为两个按钮使用不同的名称值:
<input type="submit" name="button1" value="Save and continue"/>
<input type="submit" name="button2" value="Save and finish"/>
Run Code Online (Sandbox Code Playgroud)
在您的控制器中:
String button1 = request.getParameter("button1");
String button2 = request.getParameter("button2");
if (button1 != null){
// Do stuff
}
else if (button2 != null){
// Do a different stuff
}
else {
// None of them were pressed
}
Run Code Online (Sandbox Code Playgroud)
首选第二种解决方案,因为它不依赖于元素的值