📜  Spring – MVC 表单复选框(1)

📅  最后修改于: 2023-12-03 14:47:34.126000             🧑  作者: Mango

Spring - MVC 表单复选框

在Web应用程序中,表单复选框是经常用到的组件之一。它可以让用户从多个选项中选择多个或单个选项。在Spring Web MVC框架中,我们可以使用<form:checkbox>元素来创建复选框。

创建复选框

要在Spring Web MVC应用程序中创建复选框,请按照以下步骤操作:

  1. 创建一个Java类来表示复选框的值:

    public class CheckBoxValue {
        private boolean selected;
    
        public boolean isSelected() {
            return selected;
        }
    
        public void setSelected(boolean selected) {
            this.selected = selected;
        }
    }
    

    在上面的代码中,我们定义了一个名为CheckBoxValue的类来表示复选框的值。isSelected()方法返回复选框是否被选中,setSelected()方法用于设置复选框的选中状态。

  2. 在控制器中添加一个处理复选框的方法:

    @GetMapping("/checkbox")
    public ModelAndView getCheckBox() {
        ModelAndView modelAndView = new ModelAndView("checkbox");
        modelAndView.addObject("checkBoxValue", new CheckBoxValue());
        return modelAndView;
    }
    

    在上面的代码中,我们定义了一个名为getCheckBox()的方法,它返回视图名为checkboxModelAndView对象,并将一个新的CheckBoxValue对象添加到模型中。

  3. 创建一个视图来显示复选框:

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    
    <html>
    <head><title>Spring - MVC 表单复选框</title></head>
    <body>
        <h2>使用 Spring MVC 创建复选框</h2>
        <form:form method="post" modelAttribute="checkBoxValue">
            <form:checkbox path="selected" label="Spring" value="true"/>
            <form:checkbox path="selected" label="Hibernate" value="true"/>
            <form:checkbox path="selected" label="Struts" value="true"/>
            <br><br>
            <input type="submit" value="提交"/>
        </form:form>
    </body>
    </html>
    

    在上面的代码中,我们使用了Spring表单标签库的<form:form><form:checkbox>元素来创建复选框。path属性指定了与模型属性对应的表单域,value属性指定了复选框被选中时提交的值,label属性指定了显示在复选框后面的文本标签。

    注意,我们将modelAttribute属性设置为checkBoxValue,这与控制器中getCheckBox()方法中添加到模型的属性相对应。

  4. 创建一个处理复选框提交的方法:

    @PostMapping("/checkbox")
    public ModelAndView processCheckBox(@ModelAttribute("checkBoxValue") CheckBoxValue checkBoxValue) {
        ModelAndView modelAndView = new ModelAndView("checkboxresult");
        modelAndView.addObject("checkBoxValue", checkBoxValue);
        return modelAndView;
    }
    

    在上面的代码中,我们定义了一个名为processCheckBox()的方法来处理复选框的提交。@ModelAttribute注解指定了将提交的表单数据绑定到哪个模型属性上。

  5. 创建复选框提交结果的视图:

    <html>
    <head><title>Spring - MVC 表单复选框提交结果</title></head>
    <body>
        <h2>复选框提交结果:</h2>
        <p>选中的项目是:</p>
        <c:choose>
            <c:when test="${checkBoxValue.selected}">
                Spring
            </c:when>
            <c:otherwise>
                没有选中任何项目。
            </c:otherwise>
        </c:choose>
    </body>
    </html>
    

    在上面的代码中,我们使用了JSTL的<c:choose><c:when>元素来显示复选框提交的结果。

总结

Spring MVC的表单复选框可以让用户从多个选项中选择多个或单个选项。我们可以使用<form:checkbox>元素来创建复选框,使用@ModelAttribute注解来将提交的表单数据绑定到模型属性上。通过这篇教程的学习,相信你已经掌握了Spring MVC的表单复选框的基本用法。