Struts2 validation验证讲解(annotaion方式)

科技中介服务机构如何利用平台简化高难度的专业服务流程?.docx 科技中介服务机构如何利用平台简化高难度的专业服务流程? 立即下载
我们可以在需要验证的方法上写上以下注解:

@Validati*****(requiredStrings = { 
        @RequiredStringValidator(fieldName = "oldPassword", message = "旧密码不允许为空!"),
        @RequiredStringValidator(fieldName = "newPassword", message = "新密码不允许为空!")},
    stringLengthFields = {
        @StringLengthFieldValidator(fieldName = "newPassword", minLength = "4", maxLength = "20", message = "新密码长度只允许为4-20!")})

@RequiredStringValidator代表进行字符串非空验证,fildName是指需要验证的参数名称,message为验证失败后显示的信息。
其实struts2中内置了很多验证方法,稍后会将这些方法列出来。

写到这里,肯定有很多朋友会出现这样的问题:以上代码并不是只针对单个方法进行验证,而是对所有方法都进行了验证,其实我们可以对不需要验证的方法上写了@SkipValidation注解。。但这样又出现了问题,若有两个方法都需要进行验证但参数又不相同,那怎么办呢?
这样我们就需要配置struts2的validation interceptor的一个参数validateAnnotatedMethodOnly为true即可。
默认情况下struts2的配置中没有配置这个参数,所以需要我们自己重新配置一下defaultStack:

代码如下:

<interceptors>
    <interceptor-stack name="defaultParentStack">
        <interceptor-ref name="exception"/>
        <interceptor-ref name="alias"/>
        <interceptor-ref name="servletConfig"/>
        <interceptor-ref name="i18n"/>
        <interceptor-ref name="prepare"/>
        <interceptor-ref name="chain"/>
        <interceptor-ref name="debugging"/>
        <interceptor-ref name="scopedModelDriven"/>
        <interceptor-ref name="modelDriven"/>
        <interceptor-ref name="fileUpload"/>
        <interceptor-ref name="checkbox"/>
        <interceptor-ref name="multiselect"/>
        <interceptor-ref name="staticParams"/>
        <interceptor-ref name="actionMappingParams"/>
        <interceptor-ref name="params">
          <param name="excludeParams">dojo\..*,^struts\..*</param>
        </interceptor-ref>
        <interceptor-ref name="conversionError"/>
        <!-- 配置方法级别的校验 -->
        <interceptor-ref name="validation">
            <param name="excludeMethods">input,back,cancel,browse</param>
            <param name="validateAnnotatedMethodOnly">true</param>
        </interceptor-ref>
        <interceptor-ref name="workflow">
            <param name="excludeMethods">input,back,cancel,browse</param>
        </interceptor-ref>
    </interceptor-stack>
</interceptors>

最后将这个interceptors设置为默认拦截器栈即可:

<default-interceptor-ref name="defaultParentStack" />

注意:将validateAnnotatedMethodOnly参数设置为true后,对于不需要进行验证的方法没必要使用@SkipValidation注解。

此外,我们还可以在方法上配置@InputConfig(resultName = "error")可以配置验证失败后跳转的URL。
具体代码可以参考SHOP++源代码。

Struts2内置验证方法:
@RequiredFieldValidator:字符串非空验证
@EmailValidator:E-mail验证
@UrlValidator:Url验证
@StringLengthFieldValidator:字符串长度验证
@intRangeFields:数值大小验证
@dateRangeFields:日期验证
@RegexFieldValidator:正则表达式验证


SHOP++验证实例:

@InputConfig(resultName = "error")
    @Validati*****(requiredStrings = {
            @RequiredStringValidator(fieldName = "member.username", message = "用户名不允许为空!"),
            @RequiredStringValidator(fieldName = "member.password", message = "密码不允许为空!"),
            @RequiredStringValidator(fieldName = "member.email", message = "E-mail不允许为空!")},
            requiredFields = {
            @RequiredFieldValidator(fieldName = "isAgree", message = "必须同意服务协议!")},
            stringLengthFields = {
            @StringLengthFieldValidator(fieldName = "member.username", minLength = "2", maxLength = "20", message = "用户名长度必须在${minLength}到${maxLength}之间!"),
            @StringLengthFieldValidator(fieldName = "member.password", minLength = "4", maxLength = "20", message = "密码长度必须在${minLength}到${maxLength}之间!")},
            emails = {
            @EmailValidator(fieldName = "member.email", message = "E-mail格式错误!")},
            regexFields = {
            @RegexFieldValidator(fieldName = "member.username", expression = "^[0-9a-z_A-Z\u4e00-\u9fa5]+$", message = "用户名只允许包含中文、英文、数字和下划线!")}

    )


来源:http://blog.sina.com.cn/s/blog_7085382f0100uep5.html

国央企创新负责人如何实现科技成果的高价值转化与供需匹配?.docx 国央企创新负责人如何实现科技成果的高价值转化与供需匹配? 立即下载

相关推荐

政府科技管理者在推动区域科技成果转化时,如何构建系统性、可持续的创新生态?.docx

政府科技管理者在推动区域科技成果转化时,如何构建系统性、可持续的创新生态?

struts2 18拦截器详解(十八) --- AnnotationValidationInterceptor

AnnotationValidationInterceptor    AnnotationValidationInterceptor拦截器处于defaultStack第十七的位置,主要是用于数据校验的,该拦截器继承自ValidationInterceptor拦截器增加了在方法上使用注解取消校验功能。ValidationInterceptor又继承自MethodFilterInterc

云原生之家 3496

HDF文件查看软件支持直接打开

HDF文件查看软件支持直接打开

Struts2 使用Validation框架验证数据(三十七)

A:在Struts2的框架汇中,开发者可以通过继承ActionSupport()类,并重写validate()方法来完成输入校验。使用在Action中重写Validate()或者 validateXxx()方法实现校验对某个方法起作用。    例如:validate()方法会对action中的所有 逻辑处理方法起作用  比如:execute() , login() B:采用Struts2的内置校

路虽远行则将至,事虽难做则必成 1102

量化数据采集实战:从App接口逆向到Python爬虫系统构建

数据采集是量化分析和自动化策略的基石,其核心原理是通过程序模拟客户端行为,从目标服务器获取结构化数据。在金融科技领域,高效、稳定的数据采集能力直接决定了策略研究的深度和时效性。面对金融App常见的反爬机制,如请求签名和身份认证,工程师需要掌握网络协议分析、接口逆向与模拟请求等关键技术。这些技术不仅能用于获取市场情绪、资金流向等高频数据,更是构建个人量化研究基础设施、实现从主观看盘到客观数据分析转型的关键一步。本文以实战为例,深入剖析了如何系统性地逆向分析数据接口、破解签名算法,并最终构建一个包含代理IP池与

weixin_29032489的博客 1481

知识导航神器:Obsidian Breadcrumbs 插件全攻略

Parent: 插件Child: Breadcrumbs 用法这样,它就能识别出你和其他笔记的关系。

m0_73735578的博客 1630

struts中使用validation构架 基本配置方法

1、复制validation.xml,validation-rules.xml到WEB-INF文件夹下;2、需要在struts配置文件(struts-config.xml)中增加如下信息:         3、把ActionForm改为继承ValidatorForm;4、配置validator.xml5、页面显示错误提示信息                         

zhang9981204的专栏 1967

WinForm实战:如何用C#和PdfiumViewer打造一个功能齐全的PDF阅读器(含源码)

本文详细介绍了如何使用C#和PdfiumViewer库从零开始构建一个功能齐全的WinForm PDF阅读器。内容涵盖项目环境搭建、核心组件解析、基于命令模式的工具栏与UI架构设计,并深入讲解了智能缩放、页面导航、打印功能等核心交互的实现,以及内存管理和性能优化等高级话题,为开发者提供了一套完整的实战解决方案。

docker8compose的博客 504

Struts2 Validation验证框架错误提示信息的显示位置

Struts2 Validation校验框架错误提示信息的显示位置 Struts2提供了一个校验框架Validation,通过该框架可以仅在配置文件中配置校验字段以及校验规则就可以达到相应校验效果,此篇博客主要探讨Validation的错误提示信息在JSP中的位置。 说明 这里提供一个简单登录校验用户名和密码是否为空的例子 由于文件目录在说明过程中并不改变,这里先给出 LoginAc

drohe的博客 5170

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7)

weixin_44312889的博客 6311

Stable Diffusion 模型分享:Indigo Furry mix(人类与野兽的混合)

Indigo Furry mix 是一个混合模型,出的图具有雄性人类的体型和野兽的形态。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者indigowing文件名称文件大小1.99GB。

水滴的博客 1832

在Struts如何使用Validate()方法

Steps to using validate() in ActionForm:1.rewrite the method validate() in ActionForm file;2.in resource file ApplicationResources.properties create error marks;3.in struts-config.xml, set validate pr

Newweapon's Trace 1929

【例1896】report all clearance datasets 报告所有间隙数据集

report all clearance datasets 报告所有间隙数据集》这是一个NX二次开发官方小例子,下面是代码和解析。相较于混乱、未经验证的代码,官方案例能够确保开发者获得准确的开发方法,这些官方示例代码经过严格测试,能够正确地反映出NX软件的功能和API使用方式,有助于开发者系统地掌握NX二次开发技能,提高开发质量和效率。本专栏订阅后是永久阅读的。欢迎一起学习NX二次开发案例,逐步积累宝贵的经验,早日成为行业专家。

王牌飞行员_里海的博客 645

struts2 validation

首先 用myeclipse自动创建ssh很方便但也很操蛋,有的会没有添加需要自己添加,且spring4和hibernate5会在application。xml出错所以用myeclipse构建ssh时选spring4和hibernate4, 1在struts.xmlzh

qq_38250124的博客 430

电阻基础知识及应用电路仿真(Multisim)

本文围绕硬件工程师必备的电阻知识,从基础知识、实操、应用仿真三方面做系统讲解:基础上明确电阻的核心参数、分类、串并联计算及核心特性;实操中详解贴片/色环电阻的阻值读取、贴片封装换算,重点区分0Ω电阻(贴装跳线,实现功能选通/调试等)与磁珠(高频吸噪)的差异及选型;应用上介绍限流、分压、上拉/下拉、阻抗匹配、过压/过流保护五大典型电路的设计公式、选型原则和实操要点,同时给出电阻通用的选型、测量和布线设计规范,形成完整的电阻应用知识体系。

XU157303764的博客 2782

芒果YOLOv5改进55:损失函数篇之KLD:即插即用 芒果首发原创新颖|全网唯一更新KLD改进博客,通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框,提升YOLOv5小目标

YOLOv5改进KLD损失函数:即插即用 原创新颖|芒果专栏独家首发

包括YOLOv5、YOLOv7、YOLOv8等模型改进 665

在struts2.0中对指定方法进行validation验证

最近公司项目使用struts2.0, 在用到struts2.0中的validation框架时,当为一个Action指定Actionname-validation.xml验证规则后,validation interceptor会为该Action中的每个方法都执行validation,这样很烦。 (1)有一种解决方法是为其余不需要进行验证的方法加上annotation,即在方法前加上@SkipVali...

冰月无霜 289

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

验证框架的配置及validation.xml常用的验证规则(Struts2的输入验证详解)

原文:http://www.blogjava.net/focusJ/archive/2010/11/15/367272.html validation.xml 的命名规则和放置路径: 文件名:-validation.xml 例如:UserAction-validation.xml 就是要验证的Action类的名字。要将此文件放于Class文件相同的目录。

nicecat的专栏 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

struts1.3的validation验证方式

struts1.3的validation验证方式介绍 一、两个必须的配置文件      validator-rules.xml struts1自带的配置文件。validation.xml 用户自定义的配置文件。 二、validation.xml

大兵的世界 3403

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Struts2 Validation 验证

一个Struts2简单验证实例,eclipse。 其他文件见上篇简单登录实现。改了下Action和login.jsp然后加了个validation.xml。 结构 Action中以Action方法验证User登录 package com.struts2; import java.util.regex.Pattern; import com.opensymphony.xwork2.A...

Dalek11的博客 364

struts2 校验框架总结

http://307033.blog.51cto.com/297033/523928 struts2 校验框架总结 int 整数; double 实数; date 日期; expression  两数的关系比较; email Email地址; url visitor conversion regex 正则表达式验证; required...

anole2012的博客 1210

Struts Validation框架浅尝2

javascript支持       在web应用中,使用javascript的机会非常多。虽然不少书上提及客户有可能从浏览器关闭js的执行,但是要想完全的不使用它,目前看来好像还不行。比如一些复杂的UI是必须通过js来实现的(如下拉式菜单等等)。那么validation框架支不支持客户端的js验证呢?答案是:当然。具体做法是:-          在页面html:form标签内部添加

foxgemm的专栏 1625

Struts(二十三):使用声名式验证

Struts2工程中的验证分为两种: 1、基于XWork Validation Framework的声明式验证:Struts2提供了一些基于XWork Validation Framework的内建验证程序.使用这些验证不需要编程,只需要在一个xml文件里对验证程序应该如何工作作出声明就可以了,需要声明的内容包括:   针对哪个Action或者Model的某个或某些字段验证;   使...

weixin_34253539的博客 232

struts 下validation 的使用

好菜.搞了n天才了解使用方法. 首先启用Validator插件 虽然Validator框架是与Struts封装在一起提供的,但在默认状况下Validator并不被启用。为了启用Validator,要向你的应用程序的struts-config.xml文件中添加下面的插件定义。  <plug-in className="org.apache.struts.validator

virom 的专栏 800
上一篇: java查询char类型字段问题
下一篇: Beetl实现静态页面生成
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值