Struts2数据校验(1)--通过Action的validate()方法校验

struts中ActionForm的validate方法使用小得 struts提供了<html:errors/>标签来显示整个ActionErrors的错误信息。但要在struts-config.xml中设置<action ... 立即下载

Struts2数据校验

数据校验分为客户端校验和服务器端校验,客户端校验是指通过JavaScript或jQuery等前端手段,对提交前的数据进行一些格式的校验;服务器校验是指服务器端通过检查客户端的提交信息是否符合要求。这里主要讲解的是服务器端校验。

在Struts2中服务器端校验有两种方式:通过Action的validate()方法校验和使用XWork检验框架实现校验。

1.通过Action的validate()方法校验

Struts2提供了一个com.opensymphony.xwork2.Validateable接口,通过实现该接口中的validate()方法,我们可以把校验输入信息的代码写入到validate()方法里。

         ActionSupport类就实现了Validateable接口,因此,我们的Action只要继承了ActionSupport类,就可以通过重写validate()方法,在validate()方法中进行输入信息的校验。

         validate()方法会对Action中所有处理逻辑实现相同的校验规则进行数据校验。

         validateX()方法可以精确的对Action中的某一个方法进行校验,其中X表示处理逻辑的方法名。

注意:validate()方法在execute()(也可以是其他方法)方法前被执行,仅当数据校验正确,才执行execute()方法,如果校验出错,则将错误信息添加到ActionSupport类的fieldErrors域中,再在JSP页面中输出。

示例如下:

(1)编写输入信息页面register.jsp,核心代码如下(需要引入struts-tags):

<body>

<s:fielderror />

<form action="${pageContext.request.contextPath}/register.action" method="post">

姓名:<input type="text" name="name"/><br>

年龄:<input type="text" name="age" /><br>

<input type="submit" value="submit" />

</form>

</body>

(2)编写继承了ActionSupport类的Action:

publicclass RegisterAction extends ActionSupport {

    private String name;

    privateintage;

    @Override

    public String execute() throws Exception {

        return"hello";

    }

    public String register(){

        return"hello";

    }

    @Override

    publicvoid validate() {

        System.out.println("这里是validate()方法");

    }

    publicvoid validateRegister() {

        System.out.println("这里是validateRegister()方法");

        if(name==null||name.length()<=0){

            addFieldError("name", "姓名不能为空");

        }

        if(age<=0||age>150){

            addFieldError("age", "年龄输入错误");

        }

    }

    public String getName() {

        returnname;

    }

    publicvoid setName(String name) {

        this.name = name;

    }

    publicint getAge() {

        returnage;

    }

    publicvoid setAge(intage) {

        this.age = age;

    }

}

(3)在struts.xml中注册Action:

<action name="register" class="com.chen.action.RegisterAction" method="register">

            <result name="input">/register.jsp</result>

            <result name="hello">/show.jsp</result>

</action>

(4)注册成功后,显示用户信息show.jsp,核心代码如下:

<body>

${name}<br>

${age}

</body>

         通过运行可以看到validateX()方法在validate()方法前面调用。一般来说,在调用Action的某个业务逻辑处理方法前,会先查看有没有与该处理逻辑对应的validateX()方法

,然后在查看validate()方法。

       如果数据校验时出现了错误信息,Struts2框架就不会在调用业务逻辑处理了,而是转到struts.xml文件中找到该Action对应的name属性为input的result,进入该元素指定的视图中。

struts2实现服务器端校验示例 struts2实现服务器端校验示例,包含Dojo实现类似ajax校验 立即下载

相关推荐

非球面检测

摘要:非球面镜检测主要采用干涉法,包括零位补偿和非零位补偿两种方式。零位补偿通过透镜组完全校正像差,精度达1%波长,但设计复杂成本高;非零位补偿利用部分像差补偿降低波前斜率,适用于规则非球面。折射-衍射混合补偿镜能同时校正多种像差。实际检测中可采用物理补偿镜或动态CGH加载方案,光路设计需运用坐标断点和多重结构技术实现复杂光路建模。不同方法各具优势,需根据检测需求选择合适方案。

Zhaxibamao的博客 2111

struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)...

前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通过Struts2框架提供的validateX()方法来准确校验Action中的某一个方法,其中X表示处理逻辑的方法名。 还是以前的例子,换一种写法,来说明validate()方法和validate...

weixin_34293059的博客 137

LaTeX参考文献格式apsrev4-1,增加文献标题

APS的LaTeX参考文献格式apsrev4-1是隐藏标题的,如果想要出现标题,需要更改apsrev4-1.bst文件内容 在apsrev4-1.bst文件靠后部分,定义不同类型文献格式的地方,将article类型的内容替换为, FUNCTION {article} { output.bibitem format.authors booktitle empty$ { "author" output.check }{ output } if$ author format.

loading1234567的博客 5032

struts2:数据校验,通过Action中的validate()方法实现校验,图解

根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种。服务器端验证目前有两种方式: 第一种 Struts2中提供了一个com.opensymphony.xwork2.Validateable接口,此接口只有一个方法:validate()。如果有某个类实现了Validatable接口,Struts2就可以直接调用该类中的validate()方法。ActonSupport类...

weixin_33709219的博客 252

safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer解决方案

本文主要介绍了safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 Windows 2.2 Linux

weixin_43178406的博客 15万+

【如何利用扩展卡尔曼滤波解决跟踪毫米波雷达目标】

笛卡尔坐标系(非极坐标系):使用两个垂直的轴(通常是x轴和y轴)来确定一个点的位置。你沿着这两个轴移动确定的距离来找到这个点。极坐标系:使用一个角度和一个距离来确定一个点的位置。首先,你转到一个特定的方向(角度),然后沿着那个方向移动确定的距离来找到这个点。希望这个例子能帮助你理解两种坐标系的基本概念!

小秋 AI SLAM 入门实战教程 885

Struts2中action的validate()方法

[b]问题:[/b] 想问一下,对于validate方法中验证出现错误,手动的添加字段级别错误或者动作级别错误,这些错误信息保存在哪里了,除了struts标签取出,还有别的方法没? 假如对于INPUT ,我重定向到别的页面那么错误信息能提取出来吗?为什么? [b]解答:[/b] 添加的错误信息都在当前的Action对象上吧 在validate一般都是用this.addFieldErro...

iteye_3352的博客 348

论文阅读:ICLR 2023 FINE-TUNING ALIGNED LANGUAGE MODELS COMPROMISES SAFETY, EVEN WHEN USERS DO NOT INTEND

对大型语言模型(LLMs)进行微调以适应特定用例通常涉及对预训练的LLMs进行进一步的定制。Meta公开发布Llama模型和OpenAI的API允许在自定义数据集上微调GPT-3.5 Turbo,也鼓励这种做法。但是,这种自定义微调与安全成本有何关联?我们注意到,尽管现有的安全对齐基础设施可以在推理时限制LLMs的有害行为,但它们并未涵盖将微调权限扩展到最终用户时的安全风险。我们的红队研究发现,即使是只有几个设计有敌意的训练示例进行微调,也可以破坏LLMs的安全对齐。

CSPhD-winston的博客 811

Struts2之validate数据校验两种方式

1.Action中的validate()方法Struts2提供了一个Validateable接口,这个接口中只存在validate()方法,实现这个接口的类可直接被Struts2调用,ActionSupport类就实现了Vadidateable接口,但他的validate()方法是一个空方法,需要我们来重写。validate()方法会在execute()方法执行前执行,仅当数据校验正确,才执行exe

JavaSheng的专栏 9980

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 570

Tableau学习教程(万字保姆级教程)​​​​​​

​Tableau学习教程(保姆级教材,学不会私信留言来找我) 从BI系统开发的角度来学习tableau工具,更学会报表开发的流程 内含学习使用数据源,tableau打包工作簿,可直接提取使用 ​...

小菜菜的博客 6万+

Struts2:对Action中方法进行输入校验

在struts2中,我们可以实现对action的所有方法进行校验或对action的指定方法进行校验。对于输入校验,struts2提供了两种实现方法: 1.采用手工编写代码实现 2.基于XML配置方式实现**1.采用手工编写代码实现

静墨的博客 4632

VHDL语法学习笔记:一文掌握VHDL语法

今天给大侠带来FPGA 之 VHDL 语法学习笔记,话不多说,上货。 VHDL语法学习笔记 一、VHDL简介 1.1 VHDL 的历史 VHDL 的 英 文 全 名 是 Very-High-Speed Integrated Circuit Hardware DescriptionLanguage,诞生于 1982 年。 1987 年底,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。自 IEEE 公布了 VHDL 的标准版本 IEEE-1076(简称 87 版)...

2万+

Struts2中validate数据校验的两种常用方法

本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器.  1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接口只有一个valudate()方法,只要类实现此接口name可以直接被Struts2调用,ActionSupport类就实现了Validateable接口,但是它并没有重新validate

w1764033735的博客 599

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

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

Struts2数据有效性的校验的两种方式,Struts2数据校验(案例+解析)

抽象validate方法:针对Action当中所有的方法。在这个方法当中可以编写校验代码。package com.itzheng.web.action.demo1;import com.opensymphony.xwork2.ActionSupport;/*数据的校验继承了ActionSupport之后才有一些功能:数据的校验,国际化,设置错误的信息!*/public class LoginAction1 extends ActionSupport{private String username;priva

2401_84046545的博客 1185

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Struts2笔记——Action校验器

在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。 对于输入校验struts2提供了两种实现方法: 1.采用手工编写代码实现。 2.基于XML配置方式实现。 =====================...

chuanke1344的博客 538

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Struts, validate()方法

Struts之使用输入校验validate()方法   (2012-11-23 22:19:52) 标签:  validate()   验证   struts验证   分类: Struts 执行流程: 1)首先进行类型转换 2)然后进行输入效验(执行validate方法) 3)如果在

chengyuan520的博客 469

Struts2数据校验

1. 说明 通过编码方式进行校验 以前使用js完成数据校验:客户端的校验方式。 Struts2的数据校验:属于服务器端校验。 2. 定义Action public class UserAction extends ActionSupport { // org.apache.struts2.interceptor.TokenInterceptor private String uname; private String upwd; public String get

光何 283

java struts validate_struts2:数据校验,通过Action中的validate()方法实现校验,图解...

根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种。服务器端验证目前有两种方式:第一种Struts2中提供了一个com.opensymphony.xwork2.Validateable接口,此接口只有一个方法:validate()。如果有某个类实现了Validatable接口,Struts2就可以直接调用该类中的validate()方法。ActonSupport类实现Va...

weixin_39782500的博客 218

Struts2校验方法validate以及validateXxx方法

struts2 validate()方法验证 一个ACTION类继承ActionSupport有何用处? 在ActionSupport中实现了很多接口,就拿一个来讲,validate()方法,是默认的验证。我们可以在我们的action类中重写一下此方法。比方说验证用户名是否为空。这个方法不需要调用,当S:FORM表单提交了,到了action类中会首先执行此方法。对数据进行验证。 valida

强强强子的博客 4728

struts2提交数据校验

通过重写validate()方法实现,validate()方法会校验action中所有与execute方法签名相同的方法。 当某个数据校验失败时,应调用addFieldError()方法往系统的fieldErrors添加失败信息,因此action需要继承ActionSupport()。 如果系统的fieldErrors包含失败信息,sturts2会将请求转发到名为input的res...

dengyiyu5280的博客 104

Struts2输入校验以及错误信息处理(1)——用Action中定义的validate()方法进行校验

Struts2的输入校验有两种方式:一种是用Action中定义的validate()方法进行校验,一种是用Struts2定义好的校验框架进行校验。前者里面的逻辑判断要自己写,而后者只需要传递相应的参数即可。 不管是哪种方式,程序执行的流程都是一样的,执行流程如下: 1、对表单传递过来的数据,先进行类型转换 2、执行校验 3、若校验不合法,则跳转到以input命名的result页面,若合法,

成长的足迹 2518

struts做开发的时候action是继承Action方法还是ActionSupport方法

我做的时候,我的action是继承ActionSupport的 Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupp

xiaotom5的专栏 1816
上一篇: Struts2异常处理
下一篇: Struts2数据校验(2)--使用XWork检验框架实现校验
编程Thinker
博客等级 码龄12年 96粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值