框架学习之springMvc整合框架-03数据校验、类型转换

来源:互联网 发布:ar是什么软件 编辑:程序博客网 时间:2024/06/05 13:24

数据校验

注解和声明

  1. 在需要启用数据校验的参数前面加注解:@Validated
  2. 在实体类的属性上注解:
    @NotBlank表示不能为null,但是只能用于String类型
    @NotEmpty表示不能为null,同时 size>0
    @NotNull表示不能为Null
    @Size(min=2)表示字符串最小的长度
    @DecimalMin(“0.0”)
    @DecimalMax(“1000.0”)表示对于Double类型的数据的范围
    @DateTimeFormat(pattern=”yyyy-MM-dd”)表示日期的字符串指定标准格式
    @Past表示日期不能无效
    @Length(min=4)表示字符串长度不能小于4位
    ……百度搜索
  3. 错误提示信息的设置,可以在注解后面加(message=”…”),也可以在国际化资源文件中配置(注意格式:注解名 . 对象 . 属性名 = …)
  4. 在该参数后面紧跟着写上Errors errors,中间不要再写其他的参数
if(errors.hasFieldErrors()) {            return "有错误字段就转发到指定的页面并提示错误信息";        }

前端页面输出

  1. 导入springMvc的标签库
    <%@ taglib prefix="spForm" uri="http://www.springframework.org/tags/form" %>
  2. 普通表单要改成springMvc提供的表单
    <sp:form modelAttribute="提交的对象实例(比如一本书book)">...</sp:form>
  3. 在表单中输出错误的字段信息
    <sp:errors path="字段名" />

数据类型转换

自定义转换器

创建一个转换器类实现Converter接口:

//接口中的参数String表示被转换的数据(字符串)//Object表示要转换成的目标对象public class PhoneNumberConverter implements Converter<String, Object>{    @Override    public PhoneNumber convert(String arg) {        //可以作一些逻辑判断arg是否为空        //正则表达式判断格式        //具体的转换操作        //否则可以抛出异常来处理或提示错误信息        ......    }}

xml配置

在springMvc.xml中配置:

<!-- 配置转换器驱动 --><mvc:annotation-driven conversion-service="conversionService" /><!-- 配置一个类型转换器服务对象,由该类型转换器提供类型转换的服务        而FormattingConversionService本身就具备基本数据类型转换的能力        我们再通过配置其converters属性增加我们自己的类型转换器--><bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">    <property name="converters">        <list>            <bean class="com.bwf.term14.book.web.converter.自定义转换器类" />            ...<!-- 可以有多个 -->        </list>    </property></bean>