@Validated 검증 List 집합 방법 예시
4885 단어 @Validated검증 하 다.List
@PostMapping(value="/test")
public ApiResult getRepaymentPlan(@RequestBody @Validated List<Test> repaymentPlanVOs){
}
자 료 를 조사 한 결과@valid 는 사용 할 수 있 습 니 다.저 희 는 ValidList 류 를 사용자 정의 하여 List 를 교체 하면 검증 의 목적 을 달성 할 수 있 습 니 다.더 이상 말 하지 않 고 코드 를 직접 볼 수 있 습 니 다.
public class ValidList<E> implements List<E> {
@Valid
private List<E> list = new LinkedList<>();
@Override
public int size() {
return list.size();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public boolean contains(Object o) {
return list.contains(o);
}
@Override
public Iterator<E> iterator() {
return list.iterator();
}
@Override
public Object[] toArray() {
return list.toArray();
}
@Override
public <T> T[] toArray(T[] a) {
return list.toArray(a);
}
@Override
public boolean add(E e) {
return list.add(e);
}
@Override
public boolean remove(Object o) {
return list.remove(o);
}
@Override
public boolean containsAll(Collection<?> c) {
return list.containsAll(c);
}
@Override
public boolean addAll(Collection<? extends E> c) {
return list.addAll(c);
}
@Override
public boolean addAll(int index, Collection<? extends E> c) {
return list.addAll(index, c);
}
@Override
public boolean removeAll(Collection<?> c) {
return list.removeAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
return list.retainAll(c);
}
@Override
public void clear() {
list.clear();
}
@Override
public E get(int index) {
return list.get(index);
}
@Override
public E set(int index, E element) {
return list.set(index, element);
}
@Override
public void add(int index, E element) {
list.add(index, element);
}
@Override
public E remove(int index) {
return list.remove(index);
}
@Override
public int indexOf(Object o) {
return list.indexOf(o);
}
@Override
public int lastIndexOf(Object o) {
return list.lastIndexOf(o);
}
@Override
public ListIterator<E> listIterator() {
return list.listIterator();
}
@Override
public ListIterator<E> listIterator(int index) {
return list.listIterator(index);
}
@Override
public List<E> subList(int fromIndex, int toIndex) {
return list.subList(fromIndex, toIndex);
}
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
}
그리고 ValidList 류 로 우리 의 List 를 교체 하면 됩 니 다.
@PostMapping(value="/test")
public ApiResult getRepaymentPlan(@RequestBody @Validated ValidList<Test> repaymentPlanVOs){
}
추가,@Validated 가 되 돌아 오 는 이상 을 사용자 정의 json 형식 으로 바 꾸 고 되 돌려 줍 니 다.현재 contrller 류 에 이상 bean 을 주입 하고@ExceptionHandler 로 해당 하 는 이상 을 캡 처 하면 됩 니 다.MethodArgument NotValidException 은@Validated 에서 돌아 오 는 이상 입 니 다.여 기 는 대응 하 는 이상 만 캡 처 하면 됩 니 다.
@ExceptionHandler(value = MethodArgumentNotValidException.class)
@ResponseBody
public Map<String,Object> allExceptionHandler(MethodArgumentNotValidException e){
Map<String,Object> result = new HashMap<String,Object>();
MethodArgumentNotValidException ex = (MethodArgumentNotValidException)e;
BindingResult bindingResult = ex.getBindingResult();
StringBuilder errMsg = new StringBuilder(bindingResult.getFieldErrors().size() * 16);
errMsg.append("Invalid request:");
for (int i = 0 ; i < bindingResult.getFieldErrors().size() ; i++) {
if(i > 0) {
errMsg.append(",");
}
FieldError error = bindingResult.getFieldErrors().get(i);
errMsg.append(error.getField()+":"+error.getDefaultMessage());
}
result.put("res_code","400");
result.put("res_mess",errMsg.toString());
return result;
}
@Validated 검증 List 집합 방법 에 대한 예제 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련@Validated 검증 List 집합 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring boot @ Validated 주석 및 배합 @ Valid 사용간단 한 방법 은 Controller 내 인터페이스 매개 변수 앞 에 직접 검사 주 해 를 추가 하 는 것 입 니 다 (@ NotBlank... 이 때 는 클래스 에 주 해 를 추가 해 야 합 니 다. 검사 파라미터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.