SpringMvc进行后端的校验

  1. 导入相关的依赖(注意hibernate-validator的版本问题
<!--        hibernate validation-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.4.1.Final</version>
        </dependency>
  1. 在controller层写上相关的代码
    @RequestMapping("/login1")

    public String login1(@Valid User user, Errors errors,Model model, HttpServletRequest request, HttpServletResponse response, PrintWriter writer
    ){
    
    

        List<FieldError> errorList=null;
//         是否存在错误
        if(errors.hasErrors()){
    
    
//           获取错误的信息
            errorList = errors.getFieldErrors();
            for (FieldError error:errorList
            ) {
    
    
//                 打印错误字段的信息
                System.err.println("filed:"+error.getField()+"\t"+"msg"+error.getDefaultMessage());

                model.addAttribute("msg",error.getField()+error.getDefaultMessage());

               return "forward:login.jsp";




            }


        }


        User login = userService.login(user);
        System.out.println(login);

        if(login!=null){
    
    
            //根据roleId来查询对应的权限信息
            List<Menu> menus = userService.queryMenuByroleId(login.getRole().getRoleId());
//           把list集合转换成为json数据
            String json = JSONObject.toJSONString(menus);

            HttpSession session=request.getSession();
            session.setAttribute("user",login);//把HtUserr 的值传入user中然后可以通过getAttrubute()进行获取,最后拦截器进行放行
            session.setAttribute("menus",json);

            return "forward:index.jsp";

        }

        return "forward:login.jsp";


    }
  1. 在实体类中加上相关的注释
package com.zjj.pojo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    
    


    private Long id;
    @NotNull
    @Size(min = 3,max = 8,message = "长度不在3-8")
    private String username;
    @NotNull
    @Size(min =5,max = 10,message = "长度不在5-10")
    private String password;
//    private Integer isadmin;
//    一对一
    private Role role;



}

然后就可以在页面步看见这个相关的效果了!!!

猜你喜欢

转载自blog.csdn.net/houzhicongone/article/details/120129326
今日推荐