欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

Spring MVC 数据验证——validate注解方式

发布时间:2025/3/20 javascript 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Spring MVC 数据验证——validate注解方式 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1、说明

学习注解方式之前,应该先学习一下编码方式的spring注入。这样便于理解验证框架的工作原理。在出错的时候,也能更好的解决这个问题。所以本次博客教程也是基于编码方式。仅仅是在原来的基础加上注解方式。

2、配置信息

  • web.xml不须要改变的
  • hello-servlet.xml将原来的载入方式,改为自己主动增加有hibernate和Spring提供的validate的默认类,配置例如以下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="controller"></context:component-scan> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"><!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> --></bean><!--基于validate的载入配置--><mvc:annotation-driven validator="validator"/><!-- <bean id="accountValidator" class="dao.AccountValidator"></bean> --><bean id= "validator"class= "org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"><property name= "providerClass" value= "org.hibernate.validator.HibernateValidator"/><!-- 假设不加默认到 使用classpath下的 ValidationMessages.properties --><property name= "validationMessageSource" ref= "messageSource"/></bean> <bean id= "messageSource"class= "org.springframework.context.support.ReloadableResourceBundleMessageSource"><property name= "basename" value= "classpath:message"/><property name= "fileEncodings" value= "utf-8"/><property name= "cacheSeconds" value= "120"/></bean></beans>
  • 在src文件夹以下新建配置文件message.properties 给文件的载入是由hello-servlet.xml中的字段messageSource中的属性basename的value值决定的。能够不用配置这个文件,可是一般为了支持国际化,可是吧信息写到配置文件里的,例如以下:
account.username.size=\u7528\u6237\u540D\u7684\u957F\u5EA6\u57283-20\u4E2A\u5B57\u7B26\u4E32\u4E4B\u95F4 account.username.space=\u7528\u6237\u540D\u5B57\u7B26\u4E32\u4E4B\u95F4\u4E0D\u80FD\u6709\u7A7A\u683C account.password.size=\u5BC6\u7801\u7684\u957F\u5EA6\u8303\u56F4\u57286-20\u4E2A\u5B57\u7B26\u4E32\u4E4B\u95F4

后面的乱码都是转义后生成的。相应的中文例如以下:

3、源码
- 改动Account类,例如以下代码:

package dao;import javax.validation.constraints.Pattern; import javax.validation.constraints.Size;public class Account {@Size(min=3,max=20,message="{account.username.size}")@Pattern(regexp="^[a-zA-Z0-9]+$",message="{account.username.space}")private String username;@Size(min=6,max=20,message="{account.password.size}")private String password;public Account() {// TODO Auto-generated constructor stub}public Account(String username, String password) {super();this.username = username;this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

当中的@Size @Pattern都是注解方式的数据验证方式,后面的message信息都是定义在message.properties中

  • 不须要AccountValidate类了

3、效果演示

启动tomcat服务,在浏览器中输入:http://localhost:8080/annotation_springmvc/register

我们是用一个大有空格字符串測试一下:

注冊效果:

4、代码位置

假设有须要的,能够去这个位置下载下来看看:注解方式的数据验证。jar包也上传了

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的Spring MVC 数据验证——validate注解方式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。