주석 기반 백 엔 드 데이터 검증 - SpringMVC, Spring, Hibernate Validator 결합
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();
}
}
여기 서 매개 변수 검 사 를 실현 하고 전단 검사 후의 오류 정 보 를 되 돌려 줍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.