Spring-Validator 配置

2024-04-25 02:18
文章标签 java 配置 spring validator

本文主要是介绍Spring-Validator 配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spring-Validator 的主要意图是为 Spring MVC 提供简洁、可配置的,实现类似于Struts的验证机制,提高 Spring 的开发效率。
主要功能是
使用配制文件,
1. 提供 Spring 客户端验证机制;
2. 提供 Spring 服务器端通用的可配置的验证;

如果大家有兴趣,请到 http://sourceforge.net/projects/js-validation/ 下载,里边有例子,建议大家先看看例子(或者看struts-validator的那个例子也可以,效果差不多)。

下边,我将具体说明
1. 客户端的使用
2. 服务器端的使用

由于配置文件和struts中相同,且struts是如此的流行、广泛,所以不说配制文件的编写了,请查看struts的相关资料(只需修改使用dist下的validator-rules.xml、validation.xml即可)

1. 客户端的使用 原理呢,就是通过读取配制,在JSP页面中生成相应的javascript,然后点击submit的时候,Alert出相应的信息(虽然很多人讨厌这种方式,但这是最快最直接应用最广的方式,P:个人感觉,没有数据依据)。
具体的过程呢,当然先是开发页面和程序,然后想到要加入验证机制,如姓名不能为空,生日必须是 yyyy-mm-dd等,还强烈的想看到客户在提交后被弹出对话框吓一跳,那么,我们开始吧,嘿嘿
首先,配置先行了,在validation.xml中声明需要验证的form。

其次,在 -servlet.xml中,声明apachValidatorResolvers 
<bean >
<property >
<value>validator-rules.xml,validation.xml</value>
</property>
</bean>
bean的id不一定非叫 apachValidatorResolvers,看自己习惯了。它用途是初始化配置,需要指定validator-rules.xml,validation.xml的位置,由于犯懒,同时也为了显示它的用途,没有提供默认值。

然后,声明 javascriptValidator 
<bean />
同样,id不做要求。它的主要是为生成所需的javascript,提供给taglib或者interceptor或者其他。

最后,就是JSP的修改了。 加入对验证taglib的声明
<%@ taglib prefix="vld" uri="http://www.avidmouse.com/tags"%>
在适当的位置(form后边),加入taglib引用 
<vld:validate validationName="registrationForm" page="0"/>
page 默认值是0,所以page="0"可以省略

好了,enjoy it。

2. 服务器端的使用 原理呢,实现org.springframework.validation.Validator,提供一个通用的validator。
具体过程,和客户端的差不多,在需要添加验证时
首先,在validation.xml中声明需要验证的form。

其次,在 -servlet.xml中,声明apachValidatorResolvers

<bean >
<property >
<value>validator-rules.xml,validation.xml</value>
</property>
</bean>

然后,为需要进行验证的form声明一个验证bean 
<bean >
<property >
<ref local="apachValidatorResolvers"/>
</property>
<property ><value>com.avidmouse.validator.simple.bus.RegistrationForm</value></property>
<property ><value>RegistrationForm</value></property>
<property ><value>0</value></property> 
</bean>
formClass就是SimpleFormController的commandClass
validatorName就是在配制中声明的form名称
page 默认值是0,如果是0 ,可以不声明。

最后,声明需要验证的bean的validator为上一步声明的bean
<bean >
<property ><value>true</value></property>
<property ><value>com.avidmouse.validator.simple.bus.RegistrationForm</value></property>
<property ><ref bean="registrationValidator"/></property>
<property ><value>registration</value></property>
<property ><value>regInfo</value></property>
</bean>

好了,enjoy it again。

写完上面的也许你会发现还是运行不了.老是提示:no suche Message 为什么呢?打开validator-rules.xml文件看看.他还需要求要properties文件的.
什么也不用说,打开vaildator-rules.xml文件,去把前面有段注释的文字如下:
#Created by JInto - www.guh-software.de
#Wed Nov 30 17:13:29 CST 2005
errors.byte={0} must be a byte.
errors.creditcard={0} is an invalid credit card number.
errors.date={0} is not a date.
errors.double={0} must be a double.
errors.email={0} is an invalid e-mail address.
errors.float={0} must be a float.
errors.integer={0} must be an integer.
errors.invalid={0} is invalid.
errors.long={0} must be a long.
errors.maxlength={0} can not be greater than {1} characters.
errors.minlength={0} can not be less than {1} characters.
errors.range={0} is not in the range {1} through {2}.
errors.required={0} is required.
errors.short={0} must be a short.
errors.timecheck=please input right date.
errors.twofields=please input same fields.

生成一个messages_en.properties加载到Spring 中就可以啦

这篇关于Spring-Validator 配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933463

相关文章

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。