[SPRING] Spring MVC에서 RequestParam과 함께 Valid 매개 변수를 사용할 수없는 이유는 무엇입니까?
SPRINGSpring MVC에서 RequestParam과 함께 Valid 매개 변수를 사용할 수없는 이유는 무엇입니까?
예:
public String getStudentResult(@RequestParam(value = "regNo", required = true) String regNo, ModelMap model){
여기에 regNo 매개 변수에 @valid를 어떻게 사용할 수 있습니까?
해결법
-
==============================
1.늦은 대답. 최근에이 문제가 발생하여 해결책을 찾았습니다. 다음과 같이 할 수 있습니다. 먼저 MethodValidationPostProcessor의 bean을 등록하십시오.
늦은 대답. 최근에이 문제가 발생하여 해결책을 찾았습니다. 다음과 같이 할 수 있습니다. 먼저 MethodValidationPostProcessor의 bean을 등록하십시오.
@Bean public MethodValidationPostProcessor methodValidationPostProcessor() { return new MethodValidationPostProcessor(); }
그런 다음 컨트롤러의 유형 수준에 @Validated를 추가하십시오.
@RestController @Validated public class FooController { @RequestMapping("/email") public Map<String, Object> validate(@Email(message="请输入合法的email地址") @RequestParam String email){ Map<String, Object> result = new HashMap<String, Object>(); result.put("email", email); return result; } }
사용자가 잘못된 이메일 주소를 요청하면 ConstraintViolationException이 발생합니다. 그리고 당신은 그것을 잡을 수 있습니다 :
@ControllerAdvice public class AmazonExceptionHandler { @ExceptionHandler(ConstraintViolationException.class) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public String handleValidationException(ConstraintViolationException e){ for(ConstraintViolation<?> s:e.getConstraintViolations()){ return s.getInvalidValue()+": "+s.getMessage(); } return "请求参数不合法"; }
}
내 데모를 여기서 확인할 수 있습니다.
-
==============================
2.@Valid는 bean의 유효성을 검사하는 데 사용될 수 있습니다. 나는 그것이 단일 문자열 매개 변수에 사용되는 것을 보지 못했습니다. 또한 유효성 검사기를 구성해야합니다.
@Valid는 bean의 유효성을 검사하는 데 사용될 수 있습니다. 나는 그것이 단일 문자열 매개 변수에 사용되는 것을 보지 못했습니다. 또한 유효성 검사기를 구성해야합니다.
참조 : http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html
-
==============================
3.한 가지 방법은 래퍼 빈을 다음과 같이 작성하는 것입니다.
한 가지 방법은 래퍼 빈을 다음과 같이 작성하는 것입니다.
public class RegWrapperBean{ @NotNull String regNo ; public String getRegNo(){ return regNo ; } public void setRegNo(String str){ this.regNo=str; } }
핸들러 메소드는 다음과 같습니다.
@RequestMapping(value="/getStudentResult", method=RequestMethod.POST) public String getStudentResult(@Valid @ModelAttribute RegWrapperBean bean, BindingResult validationResult, Model model) { }
이 답변을 여기 또는 여기에서 참조하십시오.
그 도움이 되길 바랍니다.
from https://stackoverflow.com/questions/26229453/why-cant-i-use-valid-parameter-along-with-requestparam-in-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] ClassCastException $ 프록시는 aop을 사용하여로 캐스트 될 수 없습니다. (0) | 2019.02.11 |
---|---|
[SPRING] 테스트 용 스프링 부트 설정 보안 (0) | 2019.02.11 |
[SPRING] faces-config.xml의 EL 해결 프로그램 (0) | 2019.02.11 |
[SPRING] 모든 저장소와 동시에 다른 사용자 지정 기능에 사용자 지정 기능을 단일 저장소에 추가하는 Spring Jpa (0) | 2019.02.11 |
[SPRING] 동일한 이름 공간과 로컬 이름 요청을 가진 두 개의 개별 웹 서비스를 어떻게 다른 끝점으로 라우팅 할 수 있습니까? (0) | 2019.02.11 |