📜  Spring – MVC 表单单选按钮(1)

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

Spring – MVC 表单单选按钮

当你使用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的模型对象,其中包含titlefirstNamelastName属性。我们需要在控制器中使用此模型对象。

现在是创建控制器的时候了。

@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中使用单选按钮来收集用户信息。