拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 表单上的多个提交按钮

表单上的多个提交按钮

白鹭 - 2021-11-24 638 0 0

1.概述

在本快速教程中,我们将以Spring MVC中的表单入门为基础,并向JSP表单添加另一个按钮,以映射到相同的URI。

2.简短回顾

之前,我们创建了一个小型Web应用程序来输入员工的详细信息并将其保存在内存中。

首先,我们编写了一个Employee模型来绑定实体,然后编写了一个EmployeeController来处理流程和映射,最后编写了一个名为employeeHome的视图,该视图描述了用户键入输入值的形式。

该表单只有一个按钮Submit ,该按钮映射到名为addEmployee的控制器的RequestMapping以使用该模型将用户输入的详细信息添加到内存数据库中。

在接下来的几节中,我们将看到如何向控制器中具有相同RequestMapping路径的相同表单添加另一个按钮Cancel,

3.表格

首先,让我们向employeeHome.jsp表单添加一个新按钮:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

 ...

 <body>

 <h3>Welcome, Enter The Employee Details</h3>

 <h4>${message}</h4>

 <form:form method="POST" action="${pageContext.request.contextPath}/addEmployee"

 modelAttribute="employee">

 <table>

 ...

 <tr>

 <td><input type="submit" name="submit" value="Submit" /></td>

 <td><input type="submit" name="cancel" value="Cancel" /></td>

 </tr>

 ...

如我们所见,我们向现有的Submit按钮添加了一个属性name ,并添加了另一个name设置为cancel Cancel按钮

我们还在页面顶部添加了模型属性message ,如果单击“ Cancel ,则将显示该message

4.控制器

接下来,让我们修改控制器以向RequestMapping添加新的属性param ,以区分两次单击按钮:

@RequestMapping(value = "/addEmployee", method = RequestMethod.POST, params = "submit")

 public String submit(@Valid @ModelAttribute("employee") final Employee employee,

 final BindingResult result, final ModelMap model) {

 // same code as before

 }

 @RequestMapping(value = "/addEmployee", method = RequestMethod.POST, params = "cancel")

 public String cancel(@Valid @ModelAttribute("employee") final Employee employee,

 final BindingResult result, final ModelMap model) {

 model.addAttribute("message", "You clicked cancel, please re-enter employee details:");

 return "employeeHome";

 }

在这里,我们增加了一个新的参数params现有的方法**submit** .值得注意的是,它的值与表单中指定的name相同。

然后,我们添加了另一个具有相似签名的方法cancel ,唯一的区别是指定为cancel的参数params 。和以前一样,它与JSP表单中的“ Cancel ”按钮的name完全相同。

5.测试

为了进行测试,我们将项目部署在Web容器(例如Tomcat)上。

在访问URL [http://localhost:8080/spring-mvc-forms/employee](http://localhost:8080/spring-mvc-forms/employee) ,我们将看到:

表单上的多个提交按钮

点击Cancel ,我们将看到:

表单上的多个提交按钮

在这里,我们看到在控制器的方法cancel编码的消息。

点击Submit ,我们将像以前一样看到键入的员工信息:

表单上的多个提交按钮

六,结论

在本教程中,我们学习了如何在Spring MVC应用程序中向同一表单添加另一个按钮,该按钮映射到控制器上的同一RequestMapping

如果需要,可以使用代码片段中演示的相同技术添加更多按钮

与往常一样,源代码可以 在GitHub上获得

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *