이 글은 SpringMVC의 유형 변환 및 검증 방법(코드 포함)을 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
Spring mvc 데이터 바인딩 프로세스:
SpringMvc는 ServletRequest 개체와 형식 매개 변수 인스턴스를 사용합니다. DataBinder 인스턴스 객체를 생성하기 위해 WebDataBinderFactory 인스턴스에 전달되는 대상 메서드입니다. DataBinder는 SpringMvc 컨텍스트에 조립된 ConversionService 컴포넌트를 호출하여 유형 변환 및 데이터 형식화를 수행하고 Servlet 요청 정보를 형식 매개변수 객체에 채웁니다. Validator 기본키를 호출하여 요청정보에 바인딩된 정형파라미터 객체의 선택된 데이터의 유효성을 검증하고, 최종적으로 데이터 바인딩 결과 BindingData 객체를 생성한다. SpringMVC는 BindingResult에서 형식 매개변수 개체와 검증 오류 개체를 추출하여 처리 방법의 해당 매개 변수에 할당합니다
WebDataBinderFactory를 통해 DataBinder 개체가 생성되는 것을 소스 코드에서 볼 수 있습니다
#🎜 🎜#사용자 정의 유형 변환기
특별한 상황이 발생하면 유형을 직접 정의해야 할 수도 있습니다. 변환기. 다음으로 문자열을 emp 객체로 변환하는 사용자 정의 유형 변환기를 설명하겠습니다. 페이지가 데이터 바인딩 또는 유형 변환을 완료할 수 없으면 springmvc는 BindingResult를 사용하여 예외 정보를 얻을 수 있습니다. Spring은 세 가지 유형의 변환기 인터페이스를 정의합니다. 이를 구현하는 모든 변환기 인터페이스는 ConversionServiceFactoryBean에 사용자 정의 변환기로 등록될 수 있습니다. Convertrepackage com.spring.mvc.controller; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @Component public class UserConverter implements Converter<String, User>{ @Override public User convert(String source) { System.out.println(source); String users [] = source.split("-"); User user = new User(); user.setUno(Integer.valueOf(users[0])); user.setUsername(users[1]); user.setUserpass(users[2]); return user; } }
<!--将非mapping配置下的请求交给默认的Servlet来处理 --> <mvc:default-servlet-handler /> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="userConverter" /> </set> </property> </bean> <!-- 注册类型转换器 --> <mvc:annotation-driven conversion-service="conversionService" />
<mvc:annotation-driven conversion-service="FormattingConversionServiceFactoryBean" />
JSR303
jsr303은 Bean 데이터 유효성 검증을 위해 Java에서 제공하는 표준 프레임워크로 이미 포함되어 있습니다. JavaEE6 .0, JSR303은 Bean 속성에 @NotNull 및 @Max와 같은 표준 데이터에 주석을 달아 유효성 검사 규칙을 지정하고 주석이 달린 검증 인터페이스를 통해 Bean을 검증합니다.@NotEmpty @NotNull private String name; @NotNull @NotEmpty private String age; @NotNull @NotEmpty @Email private String email;
@RequestMapping(value="/student",method=RequestMethod.POST) public String add(@Valid()Student student,BindingResult result){ if (!result.hasErrors()) {//判断是否有格式转换错误或者其他校验没通过 userService.addStudent(student); return "redirect:list"; }else return "addPage"; }
<!-- 注册国际化信息,必须有id,指定资源文件名称,资源文件在src目录下 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="message"></property>
</bean>
위 내용은 SpringMVC 유형 변환 및 검증 방법 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!