知識庫 / Spring / Spring MVC RSS 訂閱

表單上可多次提交按鈕

Spring MVC
HongKong
6
12:42 PM · Dec 06 ,2025

1. 概述

本快速教程將基於 Spring MVC 中表單入門的內容,並添加一個額外的按鈕到 JSP 表單中,該按鈕映射到相同的 URI。

2. 簡要回顧

之前,我們創建了一個小型 Web 應用程序,用於輸入員工信息並將其保存在內存中。

首先,我們編寫了一個模型 Employee,用於綁定實體,然後編寫了一個 EmployeeController,用於處理流程和映射,最後,我們編寫了一個名為 employeeHome 的視圖,用於描述用户輸入值的表單。

該表單只有一個按鈕 Submit,它映射到控制器中名為 addEmployeeRequestMapping,用於使用模型將用户輸入的詳細信息添加到內存數據庫中。

在接下來的幾個部分中,我們將看到如何向相同的表單添加 Cancel 按鈕,並使用控制器中具有相同 RequestMapping 路徑的相同操作

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>
...

如我們所見,我們已將 name 屬性添加到現有的 提交 按鈕中,並添加了一個 取消 按鈕,其 name 設置為 cancel

我們還添加了一個模型屬性 message 在頁面的頂部,當 取消 被點擊時,該屬性將被顯示。

4. 控制器

接下來,讓我們修改控制器以添加一個新的屬性 paramRequestMapping 以區分兩個按鈕的點擊:

@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,具有相似的簽名,唯一的區別是參數 params 被指定為 cancel。 就像之前一樣,這與 JSP 表單中 Cancel 按鈕指定的 name 相同。

5. 測試

為了進行測試,我們將部署項目到 Web 容器,例如 Tomcat。

訪問 URL http://localhost:8080/spring-mvc-forms/employee,我們將看到:

點擊“取消”後,我們將看到:

在此,我們看到在控制器方法 cancel 中編寫的消息。

點擊“提交”後,我們將看到之前輸入的信息:

6. 結論

在本教程中,我們學習瞭如何在 Spring MVC 應用程序中,將另一個按鈕添加到同一表單中,該表單映射到控制器上的相同 `RequestMapping》。

我們可以使用與代碼片段中演示相同的技術,根據需要添加更多按鈕

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.