spring mvc 주석 사용 후 검사 및 바 인 딩 처리

10163 단어 springmvcbeanjsp
spring mvc 는 주 해 를 사용 한 후에 도 자체 테이프 의 Validator 인 터 페 이 스 를 사용 할 수 있 습 니 다.예 를 들 어 이러한 Validator 실현:

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> @Component( " productValidator " ) public class ProductValidator implements Validator { @SuppressWarnings( " unchecked " ) @Override public boolean supports(Class clazz) { return Product. class .isAssignableFrom(clazz); } @Override public void validate(Object object, Errors errors) { ValidationUtils.rejectIfEmpty(errors, " name " , " field.required " ); }

 
Controller 에서 주 해 를 통 해 가 져 오기:

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> @Resource(name = " productValidator " ) private Validator validator; ... @RequestMapping( " /save.htm " ) public ModelAndView save(Product product, BindingResult result) { this .validator.validate(product, result); if (result.hasErrors()) { return new ModelAndView( " input " ); } ...

바 인 딩 과 관련 된 것 이 라면, 예 를 들 어 검사 만 비어 있 으 면 다음 방식 으로 대체 할 수 있 습 니 다. Controller 에 추가 할 수 있 습 니 다.

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> @InitBinder public void initDataBinding(WebDataBinder binder) { binder.setRequiredFields( new String[] { " name " }); }

오류 정보의 속성 파일 에 추가:
required = {0} 빈 produt. name = 이름 일 수 없습니다.
상기 두 가지 방식 은 공 통 된 속성 파일 설정 방법 을 사용 합 니 다. spring 설정 파일 에서:

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> < bean id ="messageSource" class ="org.springframework.context.support.ResourceBundleMessageSource" > < property name ="basenames" > < list > < value > errors </ value > </ list > </ property > </ bean >

jsp 페이지 에서 spring 의 form 탭 을 통 해 표시:
 

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <% @ taglib prefix = " form " uri = " http://www.springframework.org/tags/form " %> ...... <% @ taglib prefix = " form " uri = " http://www.springframework.org/tags/form " %> ......

또한, InitBinder 주석 에 파 라 메 터 를 추가 하지 않 으 면 모든 컨트롤 러 방법 이 호출 된 인삼 을 검사 합 니 다. 검사 할 필요 가 없 는 유형 이 있 을 수 있 습 니 다. 이 때 는 다음 과 같 습 니 다.

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> @InitBinder( " product " ) public void initDataBinding(WebDataBinder binder) { binder.setRequiredFields( new String[] { " name " }); }

좋은 웹페이지 즐겨찾기