一般情况下,用户的输入是随意的,为了保证数据的合法性,数据验证是所有Web应用必须处理的问题。 SpringMVC有以下两种方法可以验证输入: 利用Spring自带的验证框架 利用JSR303实现 数据验证分为客户端验证和服务器端验证,客户端验证主要是过滤正常用户的误操作,通过JavaScript代码完成。服务器端验证是整个应用阻止非法数据的最后防线,通过在应用中编程实现。 本节使用JSR303实现服务器端的数据验证。 JSR303是Java为Bean数据合法性校验所提供的标准框架。JSR303通过在Bean属性上标注类似于NotNull、Max等标准的注解指定校验规则,并通过标准的验证接口对Bean进行验证。可以通过https:jcp。orgenjsrdetail?id303查看详细内容并下载JSR303BeanValidation。 JSR303不需要编写验证器,它定义了一套可标注在成员变量、属性方法上的校验注解,如下表所示。 名称 说明 Null 被标注的元素必须为null NotNull 被标注的元素必须不为null AssertTrue 被标注的元素必须为true AssertFalse 被标注的元素必须为false Min(value) 被标注的元素必须是一个数字,其值必须大于等于指定的最小值 Max(value) 被标注的元素必须是一个数字,其值必须小于等于指定的最大值 DecimalMax(value) 被标注的元素必须是一个数字,其值必须大于等于指定的最大值 DecimalMin(value) 被标注的元素必须是一个数字,其值必须小于等于指定的最小值 size 被标注的元素的大小必须在指定的范围内 Digits(integer,fraction) 被标注的元素必须是一个数字,其值必须在可接受的范围内;integer指定整数精度,fraction指定小数精度 Past 被标注的元素必须是一个过去的日期 Future 被标注的元素必须是一个将来的日期 Pattern(value) 被标注的元素必须符合指定的正则表达式 SpringMVC支持JSR303标准的校验框架,Spring的DataBinder在进行数据绑定时,可同时调用校验框架来完成数据校验工作,非常简单方便。在SpringMVC中,可以直接通过注解驱动的方式来进行数据校验。 Spring本身没有提供JSR303的实现,HibernateValidator实现了JSR303。所以必须在项目中加入来自HibernateValidator库的jar文件,下载地址为http:hibernate。orgvalidator。本节使用版本为hibernatevalidator5。1。0。Finaldist。zip,复制其中的3个jar文件即可,Spring将会自动加载并装配。 hibernatevalidator5。1。0。Final。jar jbosslogging3。1。0。CR2。jar validationapi1。0。0。GA。jar 开课吧广场人才学习交流平台