SpringMVC 프레임 워크를 사용하는 프로젝트에서는 종종 데이터 유형이 날짜, 정수, 이중 등의 데이터를 만나는 데이터를 만나야합니다. 이 유형의 데이터 유형이 처리되지 않으면 바인딩되지 않습니다.
여기서 우리는 주석 @initbinder를 사용하여 이러한 문제를 해결할 수 있으므로 SpringMVC가 양식을 바인딩하기 전에 이러한 편집기를 등록하게됩니다. 일반적으로 이러한 방법은베이스 컨트롤러에 포함됩니다. 이러한 변환을 수행 해야하는 컨트롤러는베이스 컨트롤러를 상속하면됩니다. 실제로 Spring은 CustomDateEditor, CustomBooleEditor, CustomNumberEditor 등과 같은 많은 구현 클래스를 기본적으로 제공합니다.
데모는 다음과 같습니다.
공개 클래스 BaseController {@initbinder Protected Void Initbinder (WebDatabinder Binder) {binder.registerCustomEditor (date.class, new MyDateEditor ()); binder.registerCustomEditor (double.class, new doubleeditor ()); binder.registerCustomEditor (integer.class, new Integereditor ()); } 개인 클래스 MyDateEditor는 PropertyEditorSupport {@override public void settasext (문자열 텍스트)를 불법 행위 {simpledateformat 형식 = new SimpledateFormat ( "yyyy-mm-dd hh : mm : ss"); 날짜 날짜 = null; try {date = format.parse (텍스트); } catch (parseException e) {format = new SimpledateFormat ( "yyyy-mm-dd"); try {date = format.parse (텍스트); } catch (parseException e1) {}} setValue (날짜); }} public class doubleeditor는 propertiesEditor를 확장합니다. {@override public void settasext (문자열 텍스트)는 불법 행위 렉스크 {if (text == null || text.equals ( "")) {text = "0"; } setValue (double.parsEdouble (텍스트)); } @override public String getTasext () {return getValue (). toString (); }} public class IntegerEditor는 propertiesEditor를 확장합니다. {@override public void settasext (문자열 텍스트)는 불법 행위를 던진다 (text == null || text.equals ( "")) {text = "0"; } setValue (integer.parseint (텍스트)); } @override public String getTasext () {return getValue (). toString (); }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.