SpringMVC를 사용할 때는 종종 양식의 날짜 문자열과 Javabean의 날짜 유형간에 변환을 겪는 반면 SpringMVC는 기본적 으로이 형식의 변환을 지원하지 않으므로이 문제를 해결하기 위해 데이터 바인딩을 수동으로 구성하고 사용자 정의해야합니다.
날짜 변환이 필요한 컨트롤러에서 작동하려면 SpringMVC 주석 @InitBinder 및 Spring의 WebDateBinder 클래스를 사용하십시오.
WebDatabinder는 요청 매개 변수를 지정된 속성 편집기에 바인딩하는 데 사용됩니다. 전경의 컨트롤러로 전달 된 값은 문자열 유형이기 때문에 모델의 세트 값이있을 때 세트의 속성이 객체 인 경우 Spring은 해당 편집기를 변환 할 편집기를 찾은 다음 설정합니다.
코드는 다음과 같습니다.
@initbinder public void initbinder (WebDatabinder 바인더) {simpledateformat dateformat = new SimpledateFormat ( "yyyy-mm-dd"); dateformat.setLenient (false); binder.registerCustomEditor (date.class, new CustomDateEditor (dateformat, true)); }SpringMVC에서 구성 파일을 추가해야합니다
<!-파서 등록-> <ean> <property name = "messageconverters"> <list> <ref bean = "stringhttpmessageconverter"/> </list> </property> </bean> <!-문자열 유형 파서, String의 직접 반환 ---> <bean id = "stringhttpmessageconver"/>
글쓰기의 변화
<mvc : 주석 구동> <mvc : message-converters> <bean> <생성자-arg 값 = "utf-8"/> </bean> </mvc : message-converters> </mvc : Annotation-Driven>
확장하다:
Spring MVC는 양식을 바인딩하기 전에 이러한 편집기를 등록합니다. Spring 자체는 CustomDateEditor, CustomBooleEditor, CustomNumberEditor 등과 같은 많은 구현 클래스를 기본적으로 제공합니다.
사용시 WebDatabinder의 RegisterCustomEditor 메소드를 호출하십시오
RegisterCustomEditor 소스 코드 :
Public Void RegisterCustomEditor (class <?> 필수 유형, PropertyEditor PropertyEditor) {getPropertyEditorregistry (). RegisterCustomEditor (requireCustomEditor (requestType, PropertyEditor);} 첫 번째 매개 변수 필요한 유형은 변환 해야하는 유형입니다.
두 번째 매개 변수 PropertyEditor는 인터페이스 인 속성 편집기입니다. CustomDateEditor와 같은 위에서 언급 한 예는 모두이 인터페이스를 구현하는 PropertyEditorSupport 클래스를 상속합니다.
우리는 그들과 함께 제공되는 편집기 클래스를 사용할 수 없습니다.
우리는 스스로를 구성 할 수 있습니다.
import org.springframework.beans.propertyeditors.propertieseditor; public class doubleeditor extends propertyeditorsupport {@override public void settastext (문자열 텍스트) 불법 행위 {if (text == null || text.equals ( ")) {text ="0 "; } setValue (double.parsEdouble (텍스트)); } @override public String getTasext () {return getValue (). toString (); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.