JSR303 springmvc表单验证

回顾:
国际化i18n
1、导入国际化相关的资源文件
2、springmvc.xml中的配置(解析资源文件的类、session视图解析器、拦截器)
3、springmvc提供的标签(t标签),t标签应用资源文件中的键key
4、通过代码改变session属性中的语言包
上传下载
1、导入fileupload的jar包—》fileutils
2、需要在springmvc.xml中配置commonmultipartResolver
3、multipartfile file,file.getOri…Name,file.getcontentType
4、…与struts的文件上传下载完全一致

JSR303
一、JSR-303简介
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。
此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。
Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。
注:可以使用注解的方式进行验证

服务端校验:
控制层controller:校验页面请求的参数的合法性。在服务端控制层controller校验,不区分客户端类型。
业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使用的参数。
持久层dao:一般是不校验的。

二.参考配置
@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 限制必须是一个过去的日期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(日期类型)比当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

代码实现
1添加JAR包依赖
在pom.xml中添加如下依赖:

   <dependency>

       <groupId>javax.validation</groupId>

       <artifactId>validation-api</artifactId>

       <version>1.1.0.Final</version>

   </dependency>

   <!-- hibernate validator-->

   <dependency>

       <groupId>org.hibernate</groupId>

       <artifactId>hibernate-validator</artifactId>

       <version>5.2.0.Final</version>

   </dependency>

最简单的参数校验
1、Model 中添加校验注解

package com.zking.ssm.model;

import lombok.ToString;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

@ToString
public class Book {
    @NotBlank(message = "书籍唯一标识不能为空")
    private Integer bid;

    @NotEmpty(message = "书籍名称不能为空")
    private String bname;

    private Float bprice;

    public Book(Integer bid, String bname, Float bprice) {
        this.bid = bid;
        this.bname = bname;
        this.bprice = bprice;
    }

    public Book() {
        super();
    }

    public Integer getBid() {
        return bid;
    }

    public void setBid(Integer bid) {
        this.bid = bid;
    }

    public String getBname() {
        return bname;
    }

    public void setBname(String bname) {
        this.bname = bname;
    }

    public Float getBprice() {
        return bprice;
    }

    public void setBprice(Float bprice) {
        this.bprice = bprice;
    }
}

其他参数校验参考博文:(https://blog.csdn.net/u014029255/article/details/55518598)

ajax

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值