struts2输入验证--补充

Struts2验证(框架验证) Struts2验证有手动验证和验证码验证,Struts推荐采用配置文件的方式进行数据校验 a.继承ActionSupport类 b.修改struts2.xml文件:删除method属性 c.在需要验证的Action类的相同包下,写一个"类名-validation.xml"文件 d.加入头信息以具有提示功能 DOCTYPE validators PUBLIC "-//Apache St 阅读详情

1.struts2怎么实现方法签名(类似于struts1的DispatchAction):在strust.xml中配置如下
<action ... method="register" ></action>
<action ... method="login" ></action>
<action ... method="insert" ></action>

(1)struts2怎么实现分发验证:对应于每个方法签名,可以有相应的validate()方法如下
public void validateRegister()
public void validateLogin()
public void validateInsert()

(2)struts2怎么实现分发验证:对应于每个方法签名,可以有相应的验证框架如下
UserAction-register-validation.xml
UserAction-login-validation.xml
UserAction-insert-validation.xml

2.验证顺序

在struts1中,如果在FormBean中覆盖了validate()方法,让其放回null值,则验证框架(xml验证)就会失效。返回null则代表验证通过or无需验证;覆盖的validate()方法如果返回super.validate(mapping,request)即调用父类的validate(mapping,request),验证框架才会起作用。也就是说,如果想让验证框架有效,则不要覆盖validate()方法,如果除了验证框架验证,你还想在validate()方法中添加一些其他验证,可以覆盖validate()方法,但返回值须为super.validate(mapping,request)。

在struts2中类似。struts2的执行顺序为:

(1). 首先Struts2对客户端传来的数据进行类型转换;

(2). 类型转换完毕后再进行输入校验,顺序:UserAction-validation.xml --> UserAction-login-validation.xml --> public void validateLogin(){} --> public void validate(){};

(3). 如果类型转换和输入校验都没有错误发生,那么进入login()方法/execuet()方法(调用商业逻辑).

注意:如果类型转换不成功,也同样要进行输入校验,所以错误信息打印会将二者的错误信息全部打印出来

3.struts2的错误信息

struts2有两种错误级别:addFieldError和addActionError

addActionError(String anErrorMessage) -- Add an Action-level error message to this Action:看源代码对于Action级别的错误信息,实际上是放置在ArrayList中的,action级别的error不会在表单中显示。

addFieldError(String fieldName, String errorMessage) --  Add an error message for a given field:看源代码真正存放field级别错误信息的对象是LinkedHashMap,该LinkedHashMap的key是String类型的,value是ArrayList类型的(addFielderror(String, ArrayList)),实际上是:LinkedHashMap<String, ArrayList<String>> errors。field级别的error会在表单中显示。

源代码中还有这样一个方法:public boolean hasErrors() { if (hasActionErrors() || hasFieldErrors()) ...} 则返回input页面,表示不论是field级别的还是action级别的,只要错误容器不为空,就返回到input页面。

另外:struts2验证框架(xml验证)是将错误保存在fielderror中的,而不是actionerror。所以在jsp显示错误时要注意。

4.struts2支持客户端验证,s标签依然支持js事件,所以客户端验证推荐自己写js,不过基本不用struts做客户端验证。此外,s标签即使你不给其设置id属性,s标签也会自动生成一个id(通过查看页面源代码(获得s标签的html代码)可获得),如果你自定义了id,则会将s标签自动生成的id覆盖。

LSTM cell结构的理解和计算 LSTM是传统RNN网络的扩展,其核心结构是其cell单元,网上LSTM的相关资料繁多,质量参差不齐,下面主要结合LSTM神经网络的详细推导和 Christopher Olah的blog两篇文章中的内容进行说明。主要介绍网络如何计算,为何这么算先不展开:)。前者一副图加上29个公式,简洁明了;后者娓娓道来,适合初学者。首先是LSTM cell最常见的结构图: 这是变形的版本(找不到更清晰的版本了), 阅读详情

相关推荐

别怕,“卷积”其实很简单

首先给大家讲一个关于卷积的小故事:小明是杭州某互联网大厂的员工,每天996十分辛苦,但小明最近爱上了打台球,经常不在工位。这天,小明的主管让小明改一个需求,小明却到楼下找产品部小丽打台球去了,被主管发现,他非常气愤,扇了小明一巴掌(注意,这就是输入信号,脉冲)。于是小明脸上会渐渐地(贱贱地)鼓起来一个包,小明的脸就是一个系统,而鼓起来的包就是小明的脸对巴掌的响应。好,这样就和信号系统建立起来意义对应的联系。

Machine Learning with Tutors 3181

Struts2 框架中输入验证的三种方式

输入验证

qq_41910568的博客 1555

格拉姆角场(GAF)实战:用Python实现时间序列图像化处理

本文深入解析了格拉姆角场(GAF)技术,这是一种将一维时间序列转化为二维图像特征的方法,以便利用卷积神经网络(CNN)等图像模型进行深度分析。文章通过Python实战代码,详细演示了GASF和GADF两种核心转换的实现过程,并探讨了其在时序数据分类任务中的应用,为故障预警、金融模式识别等场景提供了强大的图像驱动分析视角。

weixin_29079671的博客 273

struts2输入验证之短路验证

短路验证:  (1)若对一个字段使用多个验证器, 默认情况下会执行所有的验证. 若希望前面的验证器验证没有通过, 后面的就不再验证, 可以使用短路验证^Conversion Error Occurred2060 (2)若类型转换失败, 默认情况下还会执行后面的拦截器, 还会进行 验证. 可以通过修改ConversionErrorInterceptor 源代码的方式使当类型转换失败时, 不再执行

u010940770的专栏 1658

【吃瓜教程】周志华西瓜书课后习题第一章答案

第一章 1.1表1.1中若只包含编号为1和4的两个样例,试给出相应的版本空间。 编号 色泽 根蒂 敲声 好瓜(标记) 1 青绿 蜷缩 浊响 是Y 4 乌黑 稍蜷 沉闷 否N 知识储备: 假设空间: 所有假设组成的空间 版本空间:与训练集一致的假设集合 从假设空间到版本空间算法大致如下: 1.删除与正例不一致的假设且删除与反例一致的假设 2.删除与正例不一致的假设 3.删除与反例一致的假设 具体选择哪种

MaxQuYY的博客 8370

[数字电路]用与非门实现BCD译码器驱动数码管

Hello,大家好。这里是xdd_core,好久不见。今天来和大家聊聊大一数字电路课程的一个课设。# Key word:BCD Decoder,Proteus8.x,NAND Gate,Digital Circuit# 流程:Proteus8.x仿真电路并绘制PCB导出Gerber文件打样,最终实物验证。# 以下为我对这个课设的report(里面对整个设计做了详细介绍,并设计了完整的验证电路) 感谢观看,仅供参考,未经作者允许,禁止转载/抄袭,本文已上传至数据库,查重必挂QAQ BCD to 7-Segme

xddcore的博客 6012

Struts2对输入数据进行验证

根据实验四的图书管理系统,扩展图书新增功能,要求对新增页面表单中的每个文件输入框进行输入校验 书名 String 必须输入;长度在4-80之间 作者 String 必须输入;长度在4-40之间 书号(13位ISBN) String 必须输入;长度必须是13位;根据参考资料中的ISBN校验码的计算方法对书号的有效性进行校验。 出版社 String 文本中必须包含“出版社”一词 出版日期 Date 日...

茨时代べ 的博客 968

CZT与FFT频谱分析方法对比:从任意频带重采样到高精度频谱分析

M = 85 % 输出点数f0 = 70 Hz % 起始频率DELF = 0.4 Hz % 频率步长频率分辨率提高到0.4 Hz分析带宽聚焦在[70, 103.6]Hz更清晰地分辨出78Hz和82Hz的频率分量。

2403_88098319的博客 1859

使用Struts2验证框架实现输入校验

通过一个示例,演示如何使用Struts2的校验框架验证表单,同时解决直接访问jsp页面发生异常的问题.

海洋之心 2万+

【R】R画图不显示中文问题

系统mac os 11 RstutioVersion1.2.1335 RVersion3.6.2 画图里的中文一直显示成方框。 ggplot()+geom_point(aes(x=ta1$X2011年,y=ta1$X2012))+ xlab("2011年")+ylab("2021年") 解决方案: 使用showtext。 install.packages("showtext", repos = "https://mirrors.ustc.edu.cn/CRAN/") in...

weixin_41772125的博客 1万+

【Mac+CLion+STM32+JLink】从零到一:在macOS上构建高效STM32开发与调试工作流

本文详细介绍了在macOS上使用CLion、STM32CubeMX和JLink搭建高效STM32开发与调试工作流的完整指南。从环境准备、CLion深度配置到STM32CubeMX工程实战,再到JLink烧录避坑和串口调试技巧,帮助开发者快速掌握Mac平台下的嵌入式开发全流程。

weixin_28278377的博客 254

Struts2表单验证

一、struts2.0的输入验证: A、手动验证:1)重写validate()2)重写validateXxx() B、使用验证框架 Action类都要继承ActionSupport类二、为一个Action设置多个逻辑处理: 为了更具有针对性的处理业务逻辑与针对性的进行输入校验,可以采用指定业务逻辑处理方法的方法,即对同一个Action设置多个逻辑处理方法,也就是说对于某个表单,我们可以指定在Action中让哪个方法来处理它的相关业务 解决方法:struts.xml中通过method属性指定处理其逻辑的方法 

java闲扯淡 3169

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

Struts2的输入验证(一)-声明式验证之字段验证

一、概述 Struts2 的输入验证分为两种方式: 1)基于 XWork Validation Framework 的声明式验证:Struts2 提供了一些基于 XWork Validation Framework 的内建验证程序,使用这些验证程序不需要编程,只要在一个 XML 文件里对验证程序应该如何工作作出声明就可以了。需要声明的内容包括: >对哪个 Action 或 M...

dong4504的博客 230

数学建模模型总结

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Struts2的验证

手动验证(以注册为例) 步骤: 编写action类继承ActionSupport然后重写父类的validate方法 在struts.xml配置好Action和验证不通过(返回input)的跳转页面 在jsp页面引入 <%@taglib uri="/struts-tags" prefix="s"%> 并且在相应的输入框附近添加Actionerr...

u012777599的博客 535

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

struts验证框架,验证两次输入密码相同

          在struts2的验证框架里面,提供了默认的验证器。有时候特殊的验证要重写validator方法,网上一些人说验证密码相同要重写,不过还是给我找到了一种不重写的方法。代码如下:   truepassword should not be nullthe two passwords should be the sa

岁月无痕(veizz)的学习记录 3811

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

struts2注解方式实现数据验证

前言:验证分为数据格式验证和业务逻辑验证,也可分为客户端验证和服务器端的验证。struts2的验证对于客户端验证意义不大,因为客户端验证完全可以用js实现。 package com.belstar.action; import java.util.ArrayList; import java.util.List; import org.apache.struts2.interceptor.

ld513508088的专栏 3703

Dwz + Struts2 完成input验证

在做网页开发的时候,经常有这样的需求。就是用户在文本框中输入信息后,当焦点离开的时候,我们需要立刻对用户输入的信息进行有效性验证。那么,正常的情况下,要想实现这一功能,我们肯定是会用到ajax的,但是,如果你使用了DWZ,那么,要实现这一功能将不再那么繁琐。你不需要写任何ajax的代码,而仅仅需要在需要的验证的input标签上加入一个remote属性。下面给大家演示一个使用Dwz + Stru

梦想起飞的地方,必须用心去经营 2555

Struts2验证框架的基本实现

在学习此框架之前,我们先了解下一个好的验证框架都需要考虑什么: 1.验证功能的验证性 2.验证功能的可扩展性 3.验证与业务逻辑的分离 一.使用Struts2中的验证框架 非常简单,只需要添加一个XML,这个XML命名为Action类名-validation.xml (实现了1,2,3),放在需要验证的Action类同包中,其内容为这个Action的execute方法运行之前要对用户的输入进行各种...

c1776167012的博客 306

struts2之数据验证

struts2有2中进行数据验证的方法     两种数据验证框架是: 1.    通过重写ActionSupport类中的validate方法进行验证 2.    通过数据验证框架进行验证 通过validate方法进行数据验证     下面先讲一下进行数据验证的action的执行流程:         当Client端发送请求给Server端时,首先将请求中的参数转

1183

Struts2的拦截器、自定义拦截器、Struts2 验证机制

Struts2的拦截器、自定义拦截器、Struts2 验证机制         过滤器 servlet过滤器 过滤器与拦截器的区别: *相同点:都是起拦截作用 *不同点:       *作用范围: *过滤器:使用范围是J2EE范畴,任何一个web工程都可以使用过滤器 *拦截器:使用范围是struts2范畴,离不开struts2框架的     *完成的功能: *过滤器:拦

fengdongkun的专栏 3564

Struts2学习笔记 | 输入验证

Struts2的输入验证 基于XWork Validation Frameword的声明式验证 Struts2提供了一些基于XWork Validation Frameword的内建验证程序,使用这些验证程序不需要编程,只要在一个XML文件里对验证程序应该如何工作作出声明就可以了。 编程验证 通过编写代码来验证用户输入 声明式验证 声明式验证分为...

小白菜的博客 227

Struts2验证

Struts2验证的意义: 1、 进行必要的格式检查 2、 防止非法数据进入业务系统,保证系统数据的完整 Struts2验证机制 Action组件要求实现Validateable接口,覆盖其validate()方法,编写有关验证代码 还要实现ValidationAware接口,该接口提供了添加错误消息的方法 addFieldError() 一般继承ActionSupport类,其实现

1862

struts2输入验证--validate()方法验证

1.action类package edu.hust.action;import java.util.Calendar;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class RegisterAction extends ActionSupport { 

Forrest He的专栏 4292

Struts2入门与配置补充

Struts2入门与配置补充需要用到的文件位置Struts2-core-2.0.11.jar文件META-INF中的struts-tags.tld文件1.新建jsp文件 login2.jsp添加标签taglib prefix="s" uri="/struts-tags"%>在标签中写入一下内容s:form action="login">s:textfield

风达的专栏 1251

struts2用户验证的validate方法

问题?struts2用户验证的validate方法 变成人员有时候会遇到注册页面或者登录页面的信息验证。当然我们可以使用jquery框架或者js来做。这里讲

Mr_li13的博客 1182
上一篇: struts2 -- interceptor(如何配置Interceptor)
下一篇: Date相关
ForWayfarer
博客等级 码龄20年 60粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值