📜  Spring MVC-RadioButton示例(1)

📅  最后修改于: 2023-12-03 15:20:13.283000             🧑  作者: Mango

Spring MVC-RadioButton示例

在使用Spring MVC框架开发Web应用时,经常会用到RadioButton(单选框),如性别、职业等选项。本篇文章将介绍如何使用Spring MVC实现RadioButton示例。

准备工作

本示例使用Spring Boot和Maven构建,需要在系统中安装以下软件:

  • JDK 1.8或以上版本
  • Maven 3.2或以上版本
创建项目

首先,我们需要创建一个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应用了。

编写代码
  1. 创建一个名为Person的Java类,用于表示一个人的基本信息,包括姓名、性别和职业。代码如下:

    public class Person {
        private String name;
        private String gender;
        private String occupation;
    
        // 省略getter和setter方法
        // ...
    }
    
  2. 创建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视图。在该视图中,我们将展示用户填写的信息。

  3. 创建两个名为form.htmlresult.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>
    
  4. 运行代码

    在命令行中使用Maven命令运行代码:

    mvn spring-boot:run
    

    然后访问http://localhost:8080/,将会看到要求用户输入信息的页面。填写信息并提交表单后,将会展示输入结果的页面。

总结

本篇文章介绍了如何使用Spring MVC实现RadioButton示例。通过该示例,我们了解了如何使用Thymeleaf模板引擎将RadioButton和其他表单元素与Java对象属性绑定,以及如何使用@ModelAttribute注解将表单数据注入请求参数。