spring mvc 数据校验(bean实体注解实现)
spring mvc 数据校验
1.添加个jar (jar与一版本会冲突)
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.3.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
2.配置springmvc.xml
<!-- 配置springMVC数据校验 -->
<mvc:annotation-driven validator="validator"/>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
</bean>
3.测试,注解用法,(@Valid,BindingResult,@pattern regexp) (课时3:29分)
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public ResultMessage login(@Valid Login login,BindingResult errorResult){
boolean flag= errorResult.hasErrors();
String sb = "";
if(flag) {
List<FieldError> errorList = errorResult.getFieldErrors();
for(FieldError fieldError: errorList) {
//String field = fieldError.getField();
String fieldErrorMessage=fieldError.getDefaultMessage();
sb=fieldErrorMessage+",";
}
return Utils.renderResultMessageError(sb);
}
@Valid Bean
BindingResult errorResult
/**
* @Eamil(message="对不起邮箱输入有误")
* @Pattern(regexp="[\\u4e00-\\u9fa5]{4,10}",message="名称必须是4-10位的汉字")
* @Max(value=100,message="")
* @Min(value=1,message="")
*/
/**
* 登录名
*/
@NotNull(message="不能为Null")
@NotBlank(message="不能为空格")
@NotEmpty(message="不能为空")
@Pattern(regexp="[\\w{2,10}]",message="输入的登录名有误2-10位,请重新输入")
private String loginId;
/**
* 密码
*/
@NotNull(message="不能为Null")
@NotBlank(message="不能为空格")
@NotEmpty(message="不能为空")
@Pattern(regexp="[\\w{3,6}]",message="密码必须为3-6数字或字母或下划线的组合")
private String pass;
spring mvc 数据校验(bean实体注解实现)的更多相关文章
- Spring MVC数据校验
在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证.输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Jav ...
- Spring MVC 数据校验@Valid
先看看几个关键词 @Valid @Pattern @NotNull @NotBlank @Size BindingResult 这些就是Spring MVC的数据校验的几个注解. 那怎么用呢?往下看 ...
- JSR教程2——Spring MVC数据校验与国际化
SpringMVC数据校验采用JSR-303校验. • Spring4.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. • Spring在进行数据绑定时,可同时调用校验框架完成数据 ...
- 【代码总结】Spring MVC数据校验
1.实验介绍 --------------------------------------------------------------------------------------------- ...
- spring mvc 数据校验
1.需要导入的jar包: slf4j-api-1.7.21.jar validation-api-1.0.0.GA.jar hibernate-validator-4.0.1.GA.jar 2.访问页 ...
- Hibernate Validation,Spring mvc 数据验证框架注解
1.@NotNull:不能为 Null,但是可以为Empty:用在基本数据类型上. @NotNull(message="{state.notnull.valid}", groups ...
- Java Web 学习(6) —— Spring MVC 之校验器
Spring MVC 之校验器 数据验证 一个典型的 Spring MVC 应用会同时应用到 formatters/converters 和 validators. 在调用 controller 期间 ...
- Spring MVC 4常用的那些注解
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...
- [转]Spring MVC 4常用的那些注解
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...
随机推荐
- Hibernate API的使用(Query、Criteria、SQLQuery对象)
Query对象 我们使用Query对象不需要编写SQL语句,但是得写HQL语句. HQL:Hibernate Query Language:Hibernate提供的查询语言,和SQL语句很相似. HQ ...
- spring(二) JDBC
一.配置 bean.xml , 链接数据库. c3p0数据库连接池 <?xml version="1.0" encoding="UTF-8"?> & ...
- CSS3—— 分页 框大小 弹性盒子 多媒体查询 多媒体查询实例
分页 网站有很多个页面,就需要使用分页来为每个页面做导航 点击及鼠标悬停分页样式 圆角样式 悬停过度效果 带边框的分页 分页间隔 分页字体大小 居中分页 面包屑导航 框大小 box-sizing 属性 ...
- 获取win10壁纸
执行命令会将所有壁纸拷贝到桌面上的wallpaper文件夹内 bat xcopy %LOCALAPPDATA%\Packages\Microsoft.Windows.ContentDeliveryMa ...
- Numpy——进阶篇
impoort numpy as np arr=np.arange(10) #输出奇数 arr[arr%2==1] #将arr中的所有奇数替换为-1,而不改变arr out=np.where(arr% ...
- Chapter03 第四节 c++的算术运算符
c++算术运算符 3.4.1 运算符的优先级和结合性 四则运算参考四则运算优先级,注意括号. 3.4.2 除法的默认类型转换和精度问题 /* * @Description: 除法 * @Author: ...
- kafka学习(八)
管理kafka 主题操作 1.在集群里创建一个主题需要用到3个参数.这些参数是必须提供的,尽管有些已经有broker级别的默认值. 主题名字,想要创建的主题的名字,主题名字可以包含字母,数 ...
- new 和 malloc 的区别 及使用
Malloc: 定义上:malloc memory allocation 动态内存分配 是c中的一个函数 使用方法: extern void *malloc(unsigned int num_byt ...
- [DS+Algo] 006 两种简单排序及其代码实现
目录 1. 快速排序 QuickSort 1.1 步骤 1.2 性能分析 1.3 Python 代码示例 2. 归并排序 MergeSort 2.1 步骤 2.2 性能分析 2.3 Python 代码 ...
- P1079Vigenère密码
这是2012年noip提高组的的DAY1T1,我用了一下午的时间,一次性AC^^. 这是一个字符串的模拟题.首先给出了一个密码对应法则,我们发现在同一对角线的明文通过密钥得出来的密文是相同的.根据八皇 ...