1.创建主页面

<form action="${pageContext.request.contextPath }/first.do" method="post">
<h1>数据验证</h1>
姓名:<input name="username"/>${nameErrormsg }<br/><br/>
成绩:<input name="score" />${scoreErrormsg }<br/><br/>
电话:<input name="phone" />${phoneErrormsg }<br/><br/>
<input type="submit" value="注册"/>
</form>

2.配置实体类

public class UserInfo {
@NotEmpty(message="用户名不能为空")
@Size(min=3,max=6,message="姓名长度应在{min}-{max}个字符")
private String username; @Min(value=0,message="成绩不能小于{value}")
@Max(value=100,message="成绩不能大于{value}")
private Integer score; @NotEmpty(message="手机号码不允许为空")
@Pattern(regexp="^1[34578]\\d{9}$",message="手机号码格式不正确")
private String phone; public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
} public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
} }

3.配置控制器

@Controller
public class MyController {
// 处理器方法
@RequestMapping(value = "/first.do")
public ModelAndView doFirst(@Validated UserInfo info, BindingResult br) { ModelAndView mv = new ModelAndView();
mv.addObject("info", info);
mv.setViewName("/welcome.jsp"); int errorCount = br.getErrorCount(); if (errorCount > 0) { FieldError nameError = br.getFieldError("username");
FieldError scoreError = br.getFieldError("score");
FieldError phoneError = br.getFieldError("phone"); if (nameError != null) {
String nameErrormsg = nameError.getDefaultMessage();
mv.addObject("nameErrormsg", nameErrormsg);
}
if (scoreError != null) {
String scoreErrormsg = scoreError.getDefaultMessage();
mv.addObject("scoreErrormsg", scoreErrormsg);
}
if (phoneError != null) {
String phoneErrormsg = phoneError.getDefaultMessage();
mv.addObject("phoneErrormsg", phoneErrormsg);
} mv.setViewName("/index.jsp");
}
return mv;
} }

4.配置applicationContext.xml

<!-- 包扫描器 -->
<context:component-scan base-package="cn.happy.controller"></context:component-scan> <!-- 生成器验证器 -->
<bean id="myValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
</bean> <!-- 注解mvc注解驱动 -->
<mvc:annotation-driven validator="myValidator"/>

5.效果图

hibernateValidate的更多相关文章

  1. Springboot采用hibernate-validate验证请求参数

    在springboot项目使用hibernate-validate对请求参数添加注解进行校验 常用注解 @Null,标注的属性值必须为空 @NotNull,标注的属性值不能为空 @AssertTrue ...

  2. Hibernate-validate工具类,手动调用校验返回结果

    引言:在常见的工程中,一般是在Controller中校验入参,校验入参的方式有多种,这里介绍的使用hibernate-validate来验证,其中分为手动和自动校验,自动校验可以联合spring,使用 ...

  3. 在springmvc中使用hibernate-validate

    在springmvc.xml中加入 <!-- 国际化配置 --> <bean id="localeResolver" class="org.spring ...

  4. 巩固一下:SpringMVC详细示例实战教程

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  5. [转]史上最全最强SpringMVC详细示例实战教程

    原文:http://www.cnblogs.com/sunniest/p/4555801.html?utm_source=tuicool&utm_medium=referral SpringM ...

  6. 史上最全最强SpringMVC详细示例实战教程

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  7. SpringMVC基础入门

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  8. SpringMVC详细示例实战教程

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  9. 史上最全的SpringMVC学习笔记

    SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...

随机推荐

  1. [Android Tips] 13. How to Detect Tablet

    /** * 判断是否是平板 * @param context * @return */ public static boolean isTablet(Context context) { return ...

  2. eclipse闪退

    svn提交我的项目时,由于网络故障,提交不上去,一直checking.......,然后我强制关闭eclipse后重启,发现启动不了了,一点击,尝试打开的状态就突然没了,试了几次都这样,重启电脑打开还 ...

  3. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program

    开启tomcat时出现以上错误 // 进入root帐户 在普通用户也可以 sudo -s //用编辑器打开.bashrc文件 gedit .bashrc 在普通用户下注意加上sudo //在最后一行添 ...

  4. oracle rac重建控制文件

    1.使用sqlplus连接到已经mount或open的rac数据库 sql> alter database backup controlfile to trace noresetlogs; 2. ...

  5. 学习OpenCV——HOG+SVM

    #include "cv.h" #include "highgui.h" #include "stdafx.h" #include < ...

  6. SpringMvc自定义拦截器

    SpringMvc也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义拦截器必须实现HandlerInterceptor接口 -preHandle():这个方法在业务处理器 ...

  7. Python2.6.6执行selenium自动化

    系统类型: [root@bogon home]# uname -aLinux bogon 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 20 ...

  8. 基于eBox的LTC1446驱动

    LTC1446 是linear出品的双通道12bit轨对轨DAC芯片,采用SPI接口,内部基准电压,满量程输出4.095v,单电源供电(4.5-5v).8Pin封装.            使用时非常 ...

  9. bitcask

    Bitcask模型是一种日志型kv模型.所谓日志型,是指它不直接支持随机写入,而是像日志一样支持追加操作.Bitcask模型将随机写入转化为顺序写入. 任意时刻,系统中只有一个数据文件支持写入,称为a ...

  10. 【Unity3D游戏开发】之全局管理类的几种方式 (十六)

    如何在Unity中实现全局管理类?由于Unity脚本的运行机制和面向组件编程(COP)的思想,实现起来和普通的方式略有差别. 第一种方式是使用静态类.适合存储一些全局的变量,如游戏当前关卡.玩家得分等 ...