zoukankan      html  css  js  c++  java
  • Spring mvc 数据验证

    加入jar包

    bean-validator.jar

    在实体类中加入验证Annotation和消息提示

    package com.stone.model;
    
    import javax.validation.constraints.Size;
    
    import org.hibernate.validator.constraints.Email;
    import org.hibernate.validator.constraints.NotEmpty;
    
    public class User {
    
        private int id;
        private String username;
        private String nickname;
        private String password;
        private String email;
    
        public User(String username, String nickname, String password, String email) {
            this.username = username;
            this.nickname = nickname;
            this.password = password;
            this.email = email;
        }
    
        public User() {
            super();
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        @NotEmpty(message="用户名不能为空")
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getNickname() {
            return nickname;
        }
    
        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
    
        @NotEmpty(message="密码不能为空")
        @Size(min = 3, max = 10,message="密码长度必须大于3小于10")
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Email(message="邮件的格式为abc.abc@abc.abc")
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        @Override
        public String toString() {
            return "User [id=" + id + ", username=" + username + ", nickname="
                    + nickname + ", password=" + password + ", email=" + email
                    + "]";
        }
    
    }

    在Controller中加入@Valid和BindingResult处理验证结果

    package com.stone.controller;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.validation.Valid;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.validation.BindingResult;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    
    import com.stone.model.User;
    
    @Controller
    @RequestMapping("/user")
    public class UserController {
    
        private final static Map<String, User> users = new HashMap<String, User>();
    
        public UserController() {
            users.put("ldh", new User("ldh", "刘德华", "123", "123@123.com"));
            users.put("zxy", new User("zxy", "张学友", "123", "123@123.com"));
            users.put("gfc", new User("gfc", "郭富城", "123", "123@123.com"));
            users.put("lm", new User("lm", "黎明", "123", "123@123.com"));
        }
    
        @RequestMapping("/users")
        public String list(Model model) {
            model.addAttribute("users", users);
            return "user/list";
        }
    
        @RequestMapping(value = "/add", method = RequestMethod.GET)
        public String add(Model model) {
            model.addAttribute(new User());
            return "user/add";
        }
    
        @RequestMapping(value = "/add", method = RequestMethod.POST)
        public String add(@Valid User user, BindingResult bingding) {
            if (bingding.hasErrors()) {
                return "user/add";
            }
            users.put(user.getUsername(), user);
            return InternalResourceViewResolver.REDIRECT_URL_PREFIX + "/user/users";
        }
    }

    在jsp中加入验证提示消息

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'add.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    
    </head>
    
    <body>
        <sf:form method="post" modelAttribute="user">
            username:<sf:input path="username" />
            <sf:errors path="username" />
            <br />
            password:<sf:password path="password" />
            <sf:errors path="password" />
            <br />
            nickname:<sf:input path="nickname" />
            <br />
            email:<sf:input path="email" />
            <sf:errors path="email" />
            <br />
            <input type="submit" />
        </sf:form>
    </body>
    </html>
  • 相关阅读:
    select、poll、epoll之间的区别总结[整理]
    IO多路复用之epoll总结
    IO多路复用之select总结
    recv send 阻塞和非阻塞
    undefined reference to `pthread_create' collect2: ld returned 1 exit status
    网络编程 recv()函数
    strlen("汉字")的值是多少
    PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯
    poj1651 Multiplication Puzzle
    poj2240 Arbitrage
  • 原文地址:https://www.cnblogs.com/stono/p/4513569.html
Copyright © 2011-2022 走看看