주석 기반 백 엔 드 데이터 검증 - SpringMVC, Spring, Hibernate Validator 결합

4365 단어 springmvc
1, jar 가방 에 의존
org.hibernate hibernate-validator 5.4.1.Final org.hibernate hibernate-validator-annotation-processor 5.4.1.Final javax.validation validation-api 2.0.0.Final
2. 일반적으로 conroller 층 에서 대상 으로 매개 변수 정 보 를 받 을 때 매개 변 수 를 검증 합 니 다. 코드 를 간소화 하기 위해 hibenate vaidator 는 주석 방식 을 바탕 으로 하 는 매개 변수 검증 을 제공 합 니 다.
package com.user.vo;
import com.alibaba.fastjson.JSON;
import org.hibernate.validator.constraints.NotEmpty;
/**
 *        
 *
 * @author CaiWei
 * @version 1.0
 * @created 2017-09-12 23:44:26
 * @since 1.0
 **/
public class RegisterUserBean {

    @NotEmpty(message = "       ")
    private String userName;

    private String nickName;

    @NotEmpty(message = "      ")
    private String passWord;

    @NotEmpty(message = "        ")
    private String confirmPwd;

    private String sex;

    private String mobile;

    public RegisterUserBean() {
    }

    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;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getConfirmPwd() {
        return confirmPwd;
    }

    public void setConfirmPwd(String confirmPwd) {
        this.confirmPwd = confirmPwd;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}

3. controller 층 가입 @ valid 주해
package com.user;

import com.alibaba.fastjson.JSON;
import com.base.ResponseEntity;
import com.user.entity.UserEntity;
import com.user.service.IUserService;
import com.user.vo.RegisterUserBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.validation.Valid;
import java.util.List;

/**
 * something to description this class
 *
 * @author CaiWei
 * @version 1.0
 * @created 2017-09-12 23:33:01
 * @since 1.0
 **/
@Controller
@RequestMapping(value = "/user/register")
public class UserRegisterController {

    private final Logger LOGGER = LoggerFactory.getLogger(UserRegisterController.class);

    @Autowired
    private IUserService userService;

    @RequestMapping(value = "/page")
    public String toRegisterPage() {
        return "/user/register";
    }

    @RequestMapping(value = "/save",method = RequestMethod.POST)
    public ResponseEntity registered(@Valid RegisterUserBean userBean, BindingResult bindingResult) {
        LOGGER.info("      :{}", JSON.toJSONString(userBean));
        if (bindingResult.hasErrors()){
            List errors = bindingResult.getFieldErrors();
            for (FieldError error :errors){
                LOGGER.info(error.getDefaultMessage());
            }
            return new ResponseEntity().error(errors.get(0).getDefaultMessage());
        }
        boolean res = false;
        if (!"{}".equals(JSON.toJSONString(userBean))) {
            UserEntity usr = new UserEntity();
            usr.setUsername(userBean.getUserName());
            usr.setCreatetime(System.currentTimeMillis() / 1000);
            usr.setNickname(userBean.getNickName());
            usr.setMobile(userBean.getMobile());
            usr.setUsertype(0);
            usr.setPassword(userBean.getConfirmPwd());
            res = userService.save(usr);

        }
        return res ? new ResponseEntity().success() : new ResponseEntity().error();
    }

}

여기 서 매개 변수 검 사 를 실현 하고 전단 검사 후의 오류 정 보 를 되 돌려 줍 니 다.

좋은 웹페이지 즐겨찾기