SpringMVC 사용자 정의 매개 변수 바 인 딩 상세 설명
1.3 매개 변수 바 인 딩 과정
1.2 @RequestParam
request 가 요청 한 매개 변수 이름과 contrller 방법의 형 매개 변수 이름 이 일치 하면 어댑터 는 자동 으로 매개 변 수 를 연결 합 니 다.일치 하지 않 으 면@RequestParam 을 통 해 request 가 요청 한 매개 변수 이름 을 지정 하여 어떤 방법 으로 연결 할 수 있 습 니까?
전송 해 야 할 인자 에 대해 서 는@RequestParam 의 속성 required 를 통 해 true 로 설정 하고 이 인 자 를 전송 하지 않 으 면 오 류 를 보고 합 니 다.
일부 인자 가 들 어 오지 않 으 면 기본 값 을 설정 해 야 합 니 다.@RequestParam 의 속성 defaultvalue 를 사용 하여 기본 값 을 설정 합 니 다.
간단 한 유형 을 바 꿀 수 있 습 니 다:정형,문자열,단정/이중 정밀도,날짜,불 형.
간단 한 pojo 타 입 바 인 딩 가능
springmvc 는 날짜 형식 에 대한 기본 바 인 딩 을 제공 하지 않 았 습 니 다.날짜 형식의 바 인 딩 을 사용자 정의 해 야 합 니 다.
2.1 WebDataBinder 사용(이해)
controller 클래스 에서 정의:
//
// @InitBinder
// public void initBinder(WebDataBinder binder) throws Exception {
// // Date.class controler pojo date , java.util.Date
// binder.registerCustomEditor(Date.class, new CustomDateEditor(
// new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"), true));
// }
이런 방법 을 사용 하 는 문 제 는 여러 contrller 에서 공유 할 수 없다 는 것 이다.2.2 WebBinding Initializer 사용(알 아 보기)
WebBinding Initializer 를 사용 하여 여러 contrller 가 속성 편집 기 를 공유 하도록 합 니 다.
사용자 정의 WebBinding Initializer 를 프로세서 어댑터 에 주입 합 니 다.
여러 개의 controller 가 같은 속성 편집 기 를 공동으로 등록 해 야 한다 면 Property Editor Registrar 인 터 페 이 스 를 실현 하고 웹 Binding Initializer 에 주입 할 수 있 습 니 다.
public class CustomPropertyEditor implements PropertyEditorRegistrar {
@Override
public void registerCustomEditors(PropertyEditorRegistry binder) {
binder.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"), true));
}
}
설정 은 다음 과 같 습 니 다:
<!-- -->
<!-- -->
<bean id="customPropertyEditor"
class="com.hao.ssm.controller.propertyeditor.CustomPropertyEditor"></bean>
<!-- webBinder -->
<bean id="customBinder"
class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="propertyEditorRegistrars">
<list>
<ref bean="customPropertyEditor"/>
</list>
</property>
</bean>
<!-- -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="webBindingInitializer" ref="customBinder"></property>
</bean>
3.사용자 정의 매개 변수 바 인 딩 사용 변환기3.1 컨버터 인터페이스 실현
날짜 형식 변환기 와 문자열 을 정의 하여 앞 뒤 공백 변환 기 를 제거 합 니 다.
public class CustomDateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
try {
//
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(source);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
public class StringTrimConverter implements Converter<String, String> {
@Override
public String convert(String source) {
try {
// , null
if(source!=null){
source = source.trim();
if(source.equals("")){
return null;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return source;
}
}
3.2 변환기 설정
<!-- -->
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.hao.ssm.controller.converter.CustomDateConverter" />
<bean class="com.hao.ssm.controller.converter.StringTrimConverter" />
</list>
</property>
</bean>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.