Spring 4 에서 vaidation 데이터 검증 이 잘못 되 었 습 니 다(maven)의 해결
6415 단어 Spring4validation검사 하 다
첫 번 째 의존 추가
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>
두 번 째 단계 검사 주 해 를 추가 합 니 다.
package com.demo.model;
/*
* spring4 hibernate validation
*
* */
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.Size;
public class User {
private String username;
private String password;
private String nickname;
private String email;
public User(){
}
public User(String username, String password, String nickname, String email) {
this.username = username;
this.password = password;
this.nickname = nickname;
this.email = email;
}
@NotBlank(message = " ")
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Size(min = 6,max = 20,message = " 6-20 ")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
@Email(message = " ")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
세 번 째 단 계 는 컨트롤 러 에서 지정 한 매개 변 수 를 검사 하고 설명 합 니 다.주:Binding Result 는@Validate 에 바짝 붙 어야 합 니 다.
//@Validated BindingResult Validated
@RequestMapping(value="/add",method = RequestMethod.POST)
public String add(@Validated User user, BindingResult br){
System.out.println(br);
System.out.println(br.getErrorCount());
if(br.hasErrors())
return "user/add";
users.put(user.getUsername(),user);
return "redirect:/user/users";
}
주:이 설정 은 검사 가 유효 하 는 지 여부 에 도 영향 을 줍 니 다.
<mvc:annotation-driven/>
SpringBoot---데이터 검증 vaidation(실전 중,추천 하지 않 음)1.오류 정보 정의
resources/아래 에 ValidationMessages.properties 라 는 이름 을 만 듭 니 다.
member.mid.notnull.error=
member.mid.email.error=
member.mid.length.error=
2.보 류 에 주석 추가
package com.zemel.micorboot.vo;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
public class Member implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@NotNull(message="{member.mid.notnull.error}")
@Email(message="{member.mid.email.error}")
@Length(min=6,message="{member.mid.length.error}")
private String mid;
private Integer age;
private Double salary;
private Date birthday;
public String getMid() {
return mid;
}
public void setMid(String mid) {
this.mid = mid;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
3.제어 추가 검증
@Valid Member vo, BindingResult result
package com.zemel.micorboot.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zemel.micorboot.base.AbstractBaseController;
import com.zemel.micorboot.vo.Member;
@Controller
public class MemberController extends AbstractBaseController {
@GetMapping("/addPre")
public String addPre(){
return "message/member_add";
}
@GetMapping("/add")
@ResponseBody
public Object add(@Valid Member vo, BindingResult result){
System.out.println("【ADD 】"+result.hasErrors());
if(result.hasErrors()){
List<ObjectError> list = result.getAllErrors();
list.forEach(oe -> {
});
return result.getAllErrors();
}
return vo;
}
}
4.방문 결과[{"codes":["Email.member.mid","Email.mid","Email.java.lang.String","Email"],"arguments":[{"codes":["member.mid","mid"],"arguments":null,"defaultMessage":"mid","code":"mid"},[],{"defaultMessage":".*","arguments":null,"codes":[".*"]}],"defaultMessage":"ç¨æ・åç注åå¿é¡»è¾å¥æ£ç¡®çé®ç®±","objectName":"member","field":"mid","rejectedValue":"xx","bindingFailure":false,"code":"Email"}]
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AJV로 JSON 스키마 검증 사용 시작다른 유효성 검사 옵션에 비해 JSON 스키마에서 얻을 수 있는 주요 이점은 크로스 플랫폼이라는 것입니다. JSON 스키마 유효성 검사기는 거의 모든 프로그래밍 언어에서 찾을 수 있습니다. 즉, JSON 스키마를 작...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.