SpringMVC 数据验证form标签库的使用

173 阅读1分钟

1、JSP添加标签库标识


<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

2、添加控制器

 public  String springformadd(@Valid User user, BindingResult bindingResult, Model model){
        if(bindingResult.hasErrors()){
            return "user/add";
        }


        return "show";
    }

3、使用spring form 标签


<h1>添加用户2</h1>
<form:form action="${pageContext.request.contextPath}/form/user" method="post" modelAttribute="user"  >
    <p>
        id:
        
        <form:input path="id"></form:input><form:errors path="id"></form:errors>
        
    </p>
    <p>
        username:<form:input path="username"></form:input><form:errors path="username"></form:errors>
    </p>
    <p>
        birthday:<form:input path="birthday"></form:input><form:errors path="birthday"></form:errors>
    </p>
    <p>
        balance:<form:input path="balance"></form:input><form:errors path="balance"></form:errors>
    </p>
    <p>
        salary:<form:input path="salary"></form:input><form:errors path="salary"></form:errors>
    </p>

    <p>
        taskCount:<form:input path="taskCount"></form:input><form:errors path="taskCount"></form:errors>
    </p>
    <p>
        hobbies:

        <form:checkbox path="hobbies" value="唱歌"></form:checkbox>
        <form:label path="hobbies">唱歌</form:label>

        <form:checkbox path="hobbies" value="跳舞"></form:checkbox>
        <form:label path="hobbies">跳舞</form:label>

        <form:checkbox path="hobbies" value="美食"></form:checkbox>
        <form:label path="hobbies">美食</form:label>

        <form:errors></form:errors>


    </p>
    <p>
        <form:button value="提交">提交</form:button>
    </p>

</form:form>

<form:form method="put"></form:form>

4、注意 页面显示一定要在控制器中写方法 绑定URL ,并将user传入参数

@RequestMapping("/user/add")
public String addView(User user){

    return "user/add";
}

Form标签库好处: 1、支持全部http请求方法 put delete

2、数据自动回显 需要使用modelAttribute 指定数据的对象

3、 使用path来双向绑定

4、Select checkboxex radiobottons 都可以使用Items制定数据源。可以是list(需要定制itemValue和itemLabel)、map(不需要定制itemvalue 和 itemLabel).

5、checkboxex 初始化需要用数组或list


1、控制器分布参数

@ModelAttribute
public void initData(Model model){
    List<String>  list = new ArrayList<>();

    list.add("狗");
    list.add("锚");
    list.add("鸟");
    list.add("乌龟");




   model.addAttribute("alist",list);

    List<String> list2 = Arrays.asList("你好","我好","大家好");

    model.addAttribute("list2",list2);
    model.addAttribute("list3",list2);
    Map<String,String> map2 = new HashMap<>();
    map2.put("zs","张三");
    map2.put("ls","李四");

    model.addAttribute("map2",map2);

}

2、JSP调用

<form:form method="post" modelAttribute="user">
    <select>
        <option value="1">啊狗</option>
        <option value="2">啊毛</option>
        <option value="3">啊鸟</option>
        <option value="4">啊雕</option>

    </select>

<br>
    <form:checkboxes path="hobbies" items="${alist}"></form:checkboxes>
    


</form:form>