📅  最后修改于: 2023-12-03 15:05:16.518000             🧑  作者: Mango
当你使用Spring MVC构建Web应用程序时,经常需要使用表单来收集用户数据。表单包括各种类型的输入字段,如文本框、单选按钮、多选框等。在本文中,我们将重点讨论Spring MVC表单中的单选按钮。
单选按钮是一种表单元素,它允许用户从几个选项中选择一个。Spring MVC提供了一种方法来处理表单中的单选按钮。在Spring MVC中,单选按钮有两个关键属性:值和名称。
值属性指定选项的值。它将始终从页面发送到服务器,并且可以在控制器中使用来表示用户所选的选项。
名称属性指定与单选按钮相关的属性的名称。这是您将在控制器中使用的名称。
首先,我们需要创建一个HTML表单,其中包括单选按钮。选择哪个场景来创建一个表单会影响你的代码。在本例中,我们使用Spring Boot和Thymeleaf构建Web应用程序。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Spring MVC Form Example - Radio Buttons</title>
</head>
<body>
<h2>Spring MVC Form Example - Radio Buttons</h2>
<form action="#" th:action="@{/radioBtn}" th:object="${radioExample}" method="post">
<table>
<tr>
<td><label>Title</label></td>
<td><input type="radio" th:field="*{title}" th:value="Mr">Mr</td>
<td><input type="radio" th:field="*{title}" th:value="Mrs">Mrs</td>
<td><input type="radio" th:field="*{title}" th:value="Miss">Miss</td>
</tr>
<tr>
<td><label>First Name</label></td>
<td><input type="text" th:field="*{firstName}" /></td>
</tr>
<tr>
<td><label>Last Name</label></td>
<td><input type="text" th:field="*{lastName}" /></td>
</tr>
<tr>
<td colspan="3"><button type="submit">Submit</button></td>
</tr>
</table>
</form>
</body>
</html>
在这里,我们创建了一个表单,用户必须选择其中一个称谓。标题属性指定所需称谓的名称。Thymeleaf更改了字段名称以匹配模型对象中的字段。
现在我们需要定义一个与表单相关的模型对象,以处理表单和控制器之间的通信。
public class RadioExample {
private String title;
private String firstName;
private String lastName;
// getters and setters
}
在这里,我们定义了一个名为RadioExample
的模型对象,其中包含title
,firstName
和lastName
属性。我们需要在控制器中使用此模型对象。
现在是创建控制器的时候了。
@Controller
public class RadioExampleController {
@GetMapping("/radioBtn")
public String showForm(Model model) {
RadioExample radioExample = new RadioExample();
model.addAttribute("radioExample", radioExample);
return "radio_form";
}
@PostMapping("/radioBtn")
public String submitForm(@ModelAttribute("radioExample") RadioExample radioExample,
BindingResult result, ModelMap model) {
model.addAttribute("title", radioExample.getTitle());
model.addAttribute("firstName", radioExample.getFirstName());
model.addAttribute("lastName", radioExample.getLastName());
return "radio_result";
}
}
在这里,我们定义了一个名为RadioExampleController
的控制器类。@GetMapping("/radioBtn")
注释用于在访问页面/radioBtn
时显示表单。我们创建了一个名为RadioExample
的模型对象并将其添加到控制器中,以在表单中显示。@PostMapping("/radioBtn")
注释用于处理表单提交。我们将模型对象的所有属性添加到ModelMap
中,并返回结果页面。
现在是最后一步:创建结果页面。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Spring MVC Form Example - Radio Buttons Result</title>
</head>
<body>
<h2>Spring MVC Form Example - Radio Buttons Result</h2>
<table>
<tr>
<td><label>Title</label></td>
<td th:text="${title}"></td>
</tr>
<tr>
<td><label>First Name</label></td>
<td th:text="${firstName}"></td>
</tr>
<tr>
<td><label>Last Name</label></td>
<td th:text="${lastName}"></td>
</tr>
</table>
</body>
</html>
在这里,我们展示了用户所选择的称谓及其填写的其他表单数据。
在本文中,我们了解了如何在Spring MVC中使用单选按钮。我们创建了一个包含单选按钮的表单,定义了一个模型对象来处理表单和控制器之间的通信,创建了一个控制器来处理表单提交,最后创建了一个结果页面来显示表单数据。你现在应该知道如何在Spring MVC中使用单选按钮来收集用户信息。