📅  最后修改于: 2023-12-03 15:20:13.283000             🧑  作者: Mango
在使用Spring MVC框架开发Web应用时,经常会用到RadioButton(单选框),如性别、职业等选项。本篇文章将介绍如何使用Spring MVC实现RadioButton示例。
本示例使用Spring Boot和Maven构建,需要在系统中安装以下软件:
首先,我们需要创建一个Spring Boot项目。可以通过Spring Initializr网站进行创建,也可以在命令行中使用Maven命令创建。
在命令行中使用Maven创建Spring Boot项目的命令如下:
mvn archetype:generate -DgroupId=com.example -DartifactId=radio-button-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
其中,com.example
是您的项目的groupId,radio-button-example
是artifactId,根据您的需要进行修改。
在pom.xml
文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
这样我们就可以使用Spring MVC框架开发Web应用了。
创建一个名为Person
的Java类,用于表示一个人的基本信息,包括姓名、性别和职业。代码如下:
public class Person {
private String name;
private String gender;
private String occupation;
// 省略getter和setter方法
// ...
}
创建PersonController
类,并使用@GetMapping
和@PostMapping
注解实现两个方法,分别用于显示要求用户输入信息的页面和处理表单提交的请求。代码如下:
@Controller
public class PersonController {
@GetMapping("/")
public String showForm(Model model) {
Person person = new Person();
model.addAttribute("person", person);
return "form";
}
@PostMapping("/")
public String submitForm(@ModelAttribute("person") Person person, Model model) {
model.addAttribute("person", person);
return "result";
}
}
在showForm
方法中,我们创建一个Person
对象,并将其添加到Model
中,然后返回form
视图。当用户访问/
路径时,将会显示该视图。
在submitForm
方法中,我们使用@ModelAttribute
注解注入请求参数,并将其添加到Model
中,然后返回result
视图。在该视图中,我们将展示用户填写的信息。
创建两个名为form.html
和result.html
的HTML文件,分别表示要求用户输入信息的页面和展示输入结果的页面。代码如下:
form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Person Info</title>
</head>
<body>
<form th:action="@{/}" th:object="${person}" method="post">
<div>
<label>Name: </label>
<input type="text" th:field="*{name}">
</div>
<div>
<label>Gender: </label>
<input type="radio" th:field="*{gender}" value="Male">Male
<input type="radio" th:field="*{gender}" value="Female">Female
</div>
<div>
<label>Occupation: </label>
<select th:field="*{occupation}">
<option value="Engineer">Engineer</option>
<option value="Doctor">Doctor</option>
<option value="Teacher">Teacher</option>
<option value="Student">Student</option>
</select>
</div>
<button type="submit">Submit</button>
</form>
</body>
</html>
在该文件中,我们通过Thymeleaf模板引擎实现了以下功能:
th:action
属性指定表单提交的URL为根路径。th:object
属性将Person
对象绑定到表单中。th:field
属性将表单中的输入框和RadioButton与Person
对象的属性绑定。th:value
属性将RadioButton的值与Person
对象的属性值绑定。th:each
属性将下拉框中的选项与Person
对象的属性值绑定。result.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Result</title>
</head>
<body>
<h1>Person Info:</h1>
<ul>
<li>Name: <span th:text="${person.name}"></span></li>
<li>Gender: <span th:text="${person.gender}"></span></li>
<li>Occupation: <span th:text="${person.occupation}"></span></li>
</ul>
</body>
</html>
运行代码
在命令行中使用Maven命令运行代码:
mvn spring-boot:run
然后访问http://localhost:8080/
,将会看到要求用户输入信息的页面。填写信息并提交表单后,将会展示输入结果的页面。
本篇文章介绍了如何使用Spring MVC实现RadioButton示例。通过该示例,我们了解了如何使用Thymeleaf模板引擎将RadioButton和其他表单元素与Java对象属性绑定,以及如何使用@ModelAttribute
注解将表单数据注入请求参数。