数据类型转换
数据类型格式化:
对属性对象的输入/输出进行格式化,从其本质上讲依然属于"类型转换’的范畴。
Spring在格式化模块中定义了一个实现
ConversionService接口的FormattingConversionService实现类,该实现类扩展了GenericConversionService, 因此它既具有类型转换的功能,又具有格式化的功能
FormattingConversionService拥有一个FormattingConversionServiceFactroyBean工类,后者用于在Spring上下文中构造前者
1、配置
2、属性前添加注释:
错误页面:
数据校验:
JSR 303是Java为Bean数据合法性校验提供的标准框架,它已经包含在JavaEE6.0中.
JSR 303通过在Bean属性上标注类似于@NotNull、@Max等标准的注解指定校验规则,并通过标准的验证接口对Bean进行验证
Hibernate Validator是JSR 303的一一个参考实现,除支持所有标准的校验注解外,它还支持以下的扩展注解
①使用JSR 303 验证标准
②加入hibernate validator验证框架
③在SpringMVC配置文件中添加<mvc : annotation-driven />
④需要在bean的属性上添加对应的注解
⑤在目标方法bean类型的前面添加@Valid注解
2).验证出错转向到哪一个页面?
3).错误消息?如何显示
将所有的错误输出:
若要显示到相对位置:
如何把错误消息进行国际化
每个属性在数据绑定和数据校验发生错误时,都会生成一个对应的FieldError对象。当一个属性校验失败后,校验框架会为该属性生成4个消息代码,这些代码以校验注解类名为前缀,结合modleAttribute、属性名及属性类型名生成多个对应的消息代码:例如User类中的password属性标准了一个@Pattern注解,当该属性值不满足@Pattern所定义的规则时,就会产生以下4个错误代码:
- Pattern.user.password
- Pattern.password
- Patternjava.lang.String
- Pattern
当使用Spring MVC标签显示错误消息时,Spring MVC会查看WEB上下文是否装配了对应的国际化消息,如果没有,则显示默认的错误消息,否则使用国际化消息。
若数据类型转换或数据格式转换时发生错误,或该有的参数不存在,或调用处理方法时发生错误,都会在隐含模型中创建错误消息。其错误代码前缀说明如下:
- required :必要的参数不存在。如@RequiredParam( "param1 )标注了一个入参,但是该参数不存在
- typeMismatch :在数据绑定时,发生数据类型不匹配的问题
- methodInvocation : Spring MVC在调用处理方法时发生了错误