Spring 폼 의 initBinder: 바 인 딩 폼 복잡 속성
5216 단어 InitBinder
Simple FormController 의 API 를 볼 때 부모 클래스 BaseCommandController 에서 온 방법 이 있 습 니 다. initBinder:
BaseCommandController (Spring Framework)
initBinder
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception
Initialize the given binder instance, for example with custom editors. Called by
de
This method allows you to register custom editors for certain fields of your command class. For instance, you will be able to transform Date objects into a String pattern and back, in order to allow your JavaBeans to have Date properties and still be able to set and display them in an HTML interface.
Default implementation is empty.
Parameters:
de
de
서 툰 분할 선
----------------------------------------
예전 에 IoC 용 기 를 배 웠 을 때 '속성 편집기' 가 언급 된 것 을 떠 올 리 면, IoC 프로필 에 특정 '편집기' 를 등록 하면 String 을 javabean 으로 변환 할 수 있다.
책 을 넘 겼 습 니 다. 속성 편집 기 를 사용자 정의 하려 면 Property Editor Support 를 계승 하고 안에 있 는 setAsText 방법 을 다시 쓰 고 등록 하면 됩 니 다.책 에는 IoC 용기 의 프로필 이 등록 되 어 있 을 뿐, initBinder 를 다시 쓰 는 방법 으로 등록 되 어 있 을 것 입 니 다.
initBinder 는 속성 편집 기 를 등록 하 는 데 사용 되 는 인삼 binder 가 있 습 니 다. ServletRequestDataBinder 형식 입 니 다. API 를 보 려 면 부모 클래스 DataBinder 에서 온 방법 이 있 습 니 다. registerCustomEditor:
DataBinder (Spring Framework)
public void registerCustomEditor(Class requiredType, String field, PropertyEditor propertyEditor)
Description copied from interface:
de<
PropertyEditorRegistry
de<
Register the given custom property editor for the given type and property, or for all properties of the given type.
If the property path denotes an array or Collection property, the editor will get applied either to the array/Collection itself (the PropertyEditor has to create an array or Collection value) or to each element (the PropertyEditor has to create the element type), depending on the specified required type.
Note: Only one single registered custom editor per property path is supported. In case of a Collection/array, do not register an editor for both the Collection/array and each element on the same property.
어 리 석 은 분할 선
방법의 입 참 명 은 이미 의 도 를 뚜렷하게 드 러 냈 다.required Type 은 분명히 command 의 javabean 을 말 합 니 다. field 는 command 에 대응 하 는 필드 이름 이자 폼 에 대응 하 는 name 을 말 합 니 다. property Editor 는 사용자 정의 속성 편집기 입 니 다.
예:
/ / 사용자 정의 속성 편집기
public class CollegeEditor extends PropertyEditorSupport{
private CollegeService collegeService;
public CollegeService getCollegeService() {
return collegeService;
}
public void setCollegeService(CollegeService collegeService) {
this.collegeService = collegeService;
}
public void setAsText(String collegeId){
int id = Integer.valueOf(collegeId);
College college = collegeService.findCollegeById(id);
setValue(college);
}
}
/ / SimpleFormController 를 다시 쓰 는 initBinder 방법
public void initBinder(HttpServletRequest request, ServletRequestDataBinder binder){
binder.registerCustomEditor(College.class, "college", collegeEditor);
}
물론 IoC 용기 에 주입 해 야 할 주입 을 잊 지 마 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring MVC InitBinder 검증 방법InitBinder 를 사용 하여 검증 하 는 경우 일반적으로 이 Controller 에서 제출 하 는 데 이 터 는 업무 적 이 고 복잡 한 검증 상황 에서 만 사용 할 수 있 습 니 다.대부분의 간단 한 폼 검증...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.