Thymeleaf多个提交按钮以一种forms
我有一个HTML页面的片段,其中包含一个表单和2个按钮:
和控制器:
@RequestMapping(value="/edit", method=RequestMethod.POST) public ModelAndView edit(@ModelAttribute SomeModel model, @RequestParam(value="action", required=true) String action) { if (action.equals("save")) { // do something here } if (action.equals("cancel")) { // do another thing } return modelAndView; }
这项工作很好,但如果我有更多按钮,我必须添加更多if
语句来检查action
字符串。 还有另一种方法可以为表单中的每个按钮创建一个动作吗?
您可以使用params变量为不同的@RequestMappings
创建单独的方法。
@RequestMapping(value="/edit", method=RequestMethod.POST, params="action=save") public ModelAndView save() {} @RequestMapping(value="/edit", method=RequestMethod.POST, params="action=cancel") public ModelAndView cancel() {}
如果您不希望将每个选项作为新请求映射接收,而不是if-case,您可以使用switch case。
@RequestMapping(value="/edit", method=RequestMethod.POST) public ModelAndView edit(@ModelAttribute SomeModel model, @RequestParam(value="action", required=true) String action) { switch(action) { case "save": // do stuff break; case "cancel": // do stuff break; case "newthing": // do stuff break; default: // do stuff break; } }
您可以知道单击了哪个提交按钮,然后按下按钮。这是代码
String btnName = request.getParameter("action"); if(btnName.equals("save")) // you code.... else if(btnName.equals("cancel")) // you code....
- 如何使用java在整个屏幕上平滑移动鼠标?
- 使用Java从PDF中提取图像
- maven-site plugins 3.3 java.lang.ClassNotFoundException:org.apache.maven.doxia.siterenderer.DocumentContent
- 可以在项目中执行eclipse调试或运行两个程序
- 程序打印1-100素数并在给定范围内抛出复合数的exception
- 处理Java RCP应用程序中工作台窗口的关闭
- Struts2 – 从静态列表设置属性使用OGNL无效的String属性
- 在没有Spring Boot应用程序的情况下使用Spring Boot Actuator
- JSplitPane精确分裂50%