복붙노트

[SPRING] 바인딩 전 JSR-303 유형 검사

SPRING

바인딩 전 JSR-303 유형 검사

모델....

@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits")
private int value;

콩 파일 ....

<mvc:annotation-driven />

제어 장치....

@RequestMapping(value = "/admin/save.htm", method = { RequestMethod.POST })
public ModelAndView saveSection(@Valid @ModelAttribute Section section, BindingResult result) {
     if(result.hasErrors())   {
         return new ModelAndView("admin/editSection", "section", section);
     }

"value"를 단지 숫자로 제한하는 방법은 무엇입니까? 숫자가 아닌 다른 값을 입력하면이 오류가 발생합니다.

몇 줄의 게시물에서 initBinding에 대해 언급했지만 필자는 그것을 사용하는 방법이나 그것이 나를 도와 줄 수 있는지 잘 모르겠습니다. 이것은 전에 해결 되어야만합니다. 바인드되기 전에 숫자인지 확인하는 방법이 있습니까?

또는 누군가가이 오류를 무시하기 위해 올바른 messages.properties 항목을 게시 할 수 있다면 나에게도 도움이 될 수 있습니다.

@ Pattern을 시도했지만 int에서는 작동하지 않습니다.

해결법

  1. ==============================

    1.앞서 언급했듯이 messages.properties에 사용자에게 친숙한 메시지가 필요합니다. 다음 메시지 코드 중 하나를 사용할 수 있습니다 (선택성 수준이 다름).

    앞서 언급했듯이 messages.properties에 사용자에게 친숙한 메시지가 필요합니다. 다음 메시지 코드 중 하나를 사용할 수 있습니다 (선택성 수준이 다름).

    또한 메시지 코드를 모르는 경우 BindingResult를 인쇄하면됩니다. toString ()은 바인딩 오류에 대한 전체 설명을 반환합니다.

  2. from https://stackoverflow.com/questions/4082924/jsr-303-type-checking-before-binding by cc-by-sa and MIT license