Struts2.1笔记(七):Struts2输入校验

从零开始:手把手教你设计DP接口电路(含原理图实战) 本文是一份详尽的DisplayPort接口电路设计实战指南。文章从DP接口的核心架构与HDMI的差异讲起,手把手解析了高速差分对、AUX辅助通道、热插拔检测等关键模块的原理图设计要点,并提供了一个完整的DP Source端原理图实例,最后总结了PCB布局与信号完整性的核心考量,旨在帮助硬件工程师高效、稳定地完成DP接口电路设计。 阅读详情

 6.1 类型转换错误
遇到类型转换错误的时候(不能进行类型转换时),Struts2框架自动生成一条错误信息,并且将该错误信息
放到addFieldError里面
类型转换错误分为两种
全局类型转换错误:
struts.xml配置文件输入<constant name="struts.custom.i18n.resources" value="message">
src目录下新建一个message.properties,
输入内容为:xwork.default.invalid.fieldvalue={0} error
局部类型转换错误:
与相应的Action类目录一致
名字格式:action类名.properties
内容:invalid.fieldvalue.属性名= message constant
如显示age类型转换错误信息提示
invalid.fieldvalue.age= age conversion error

6.2 输入校验
6.2.1手动完成输入校验
重写validate()方法
下面是一个完整的输入校验重写validate()方法的代码
public void validate() {
  if(null == username || username.length() < 6 || username.length() > 10) {
   this.addFieldError("username", "username invalid");
  }
  if (null == password || password.length() < 6 || password.length() > 15) {
   this.addFieldError("password", "password invalid");

  } else if (null == repassword || repassword.length() < 6
    || repassword.length() > 15) {
   this.addFieldError(repassword, "repassword in valid");
  } else if (!repassword.equals(password)) {
   this.addFieldError("password", "two passwords not the same");
  }
  if(age<=0||age>150){
   this.addFieldError("age", "age invalid");
  }
  if(null == birthday)
  {
   this.addFieldError("birthday","birthday invalid");
  }
  if(null == graduation)
  {
   this.addFieldError("graduation","graduation invalid");
  }
  if(null != birthday && null != graduation)
  {
   Calendar c1 = Calendar.getInstance();
   c1.setTime(birthday);
   
   Calendar c2 = Calendar.getInstance();
   c2.setTime(graduation);
   
   if(!c1.before(c2))
   {
    this.addFieldError("birthday","birthday should be before graduation");
   }
  }
  6.2.2 内建校验器
  Struts2提供了大量的内建校验器
  内建校验器是一个xml文件,与相应Action处理类目录一致
  分为 :字段校验器  (校验谁?用哪种校验器?)
       非字段校验器(用哪种校验器?校验谁?)
  
  名字格式:Action类型-validation.xml
  -validation.xml是固定的
  关于内建校验器内容可查阅Struts2 API com.opensymphony.xwork2.validator.validators 包下的class
  下面是一个关于内建校验器的代码(字段校验器)
  <?xml version="1.0" encoding="GBK"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>

 <field name="username">
  <field-validator type="requiredstring">
  <!--指定截断被校验属性的值前后的空白 -->
   <param name="trim">true</param>
   <!--指定校验失败的提示信息 -->
   <message>username is required</message>
  </field-validator>
 </field>

 <field name="username">
  <field-validator type="stringlength">
  <!--指定username属性的最小长度 -->
   <param name="minLength">6</param>
   <!--指定username属性的最大长度 -->
   <param name="maxLength">12</param>
   <!--指定校验失败的提示信息 -->
   <message>username is 6 and 12</message>
  </field-validator>
 </field>

 <field name="password">
  <field-validator type="requiredstring">
   <param name="trim">true</param>
   <message>password is required</message>
  </field-validator>
 </field>

 <field name="password">
  <field-validator type="stringlength">
   <param name="minLength">6</param>
   <param name="maxLength">14</param>
   <message>password is 6 and 14</message>
  </field-validator>
 </field>
 
 <field name="repassword">
  <field-validator type="requiredstring">
   <param name="trim">true</param>
   <message>repassword is required</message>
  </field-validator>
 </field>

 <field name="repassword">
  <field-validator type="stringlength">
   <param name="minLength">6</param>
   <param name="maxLength">14</param>
   <message>repassword is 6 and 14</message>
  </field-validator>
 </field>
 
 <field name="age">
  <field-validator type="int">
   <param name="min">1</param>
   <param name="max">150</param>
   <message>username is 1 and 150</message>
  </field-validator>
 </field>
  
 <field name="birthday">
  <field-validator type="date">
   <param name="min">1989-04-14</param>
   <param name="max">2009-04-14</param>
   <message>birthday is 1989-04-14 to 2009-04-14</message>
  </field-validator>
 </field>
 
 <field name="birthday">
  <field-validator type="required">
   <message>birthday is not blank!</message>
  </field-validator>
 </field>
 
  <field name="graduation">
  <field-validator type="date">
   <param name="min">1999-04-14</param>
   <param name="max">20019-04-14</param>
   <message>birthday is 1999-04-14 to 2019-04-14</message>
  </field-validator>
 </field>
 
  <field name="graduation">
  <field-validator type="required">
   <message>graduation is not blank!</message>
  </field-validator>
 </field>
</validators>
  

校验的流程:
1.首先Struts2对客户端来的数据进行类型转换
2.类型转换后再进行输入校验
3.如果类型和输入校验都没有错误发生那么进入execete方法
4.类型转换不成功也要进行输入校验

 

基于STM32L4XX、HAL库的 ATGM336H GPS定位模块驱动程序设计 / 转换为km/h。// 定位状态: 0=无效, 1=GPS定位, 2=差分定位。// GPS解析数据。支持GPS/BeiDou/GLONASS/Galileo/QZSS多系统联合定位。// 回调函数(需要在HAL_UART_RxCpltCallback中调用)// 地面速度(km/h)// 海拔高度(m) 阅读详情

相关推荐

LLMOps的崛起:如何利用Langfuse和Opik构建高效的模型监控与评估体系

本文探讨了LLMOps的崛起,详细介绍了如何利用Langfuse和Opik构建高效的模型监控与评估体系。通过开源工具Langfuse的全景监控方案和Opik的三层评估体系,帮助AI工程团队实现大语言模型的全生命周期管理,提升模型性能和迭代效率。文章还提供了实战技巧和工具链集成方案,助力企业优化AI应用。

ll5678的博客 681

Required String parameter 'username' is not present问题解决

同样的一份代码,在测试环境下已经好用,准备上线确出现了这样的问题: Required String parameter 'username' is not present 排除是程序代码的问题,就检查环境是否存在问题。 测试环境是tomcat的6.0.9.0 正式环境的tomcat版本7.0.70.0: 相关的配置: 里面有一个maxPostSize的设置,原先默认为0 原来tomcat...

keyboard专栏 2万+

基于 Python Flask 的智能个人财务系统

4.财务分析与报告:自动生成财务分析报告,提供图表展示(如饼图、柱状图)帮助用户了解收支状况和财务趋势。9.管理员管理功能:提供管理员模块,允许管理员查看用户财务数据、生成统计报告,并进行用户管理与权限控制。5.资产管理:用户可以记录并追踪个人资产(如房产、车辆、投资等),系统提供资产价值增减情况和趋势分析。3.预算制定与管理:用户根据收入设定每月预算,系统自动对比实际支出与预算差异,实时提醒预算完成情况。6.信用卡管理:提供信用卡账单记录与管理功能,提醒用户信用卡还款日期,避免逾期,帮助管理信用卡消费。

weixin_68689665的博客 424

kubernetes 问题汇总

invalid容器 创建的容器有个创建的时长的选项age,测试环境发现有的容器时间是invalid,通过代码查看原来是时间不对 因为每个kubelet是定时上报的,上报是基于本地当前时间的。 wildfly-rc-1l9qv 0/1 ContainerCreating 0 &lt;invalid&gt; 解决办法,在每个机器安装ntp服务。保持每个节点...

柳清风的专栏 4300

[LaTeX] 使用natbib宏包实现参考文献的“作者-年份”引用格式及常见编译错误排查

本文详细介绍了在LaTeX中使用natbib宏包实现参考文献“作者-年份”引用格式的完整流程。从宏包配置、.bib文件准备到标准编译步骤,重点解析了常见的“Bibliography not compatible with author-year”错误成因,并提供了彻底清理辅助文件等解决方案,帮助用户高效排版符合学术规范的参考文献。

moon9的博客 481

CAPL学习之路-关键字

在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称 声明数据类型的关键字 可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct struct Data { .

jasonj333 6109

六、Struts2之输入校验

一、Struts2输入校验介绍   Struts2的输入校验和类型转换都是对请求参数进行处理。 输入校验顾名思义就是请求参数是否能够满足一定的要求;   客户端校验&服务器端校验 客户端校验是指在浏览器这端通过Javascript进行初步校验,为了减轻服务器端的负载; 服务器端校验是校验数据的最后一道防线;   在Struts2中,数据校验不需要写任何代码,只需要一个配置文件,配

xiazdong 1万+

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1633

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

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

静墨的博客 4632

【二 Deepseek+Coze案例】【 2.2 Coze + Deepseek 实现小红书爆款笔记:打造专属Agent智能体】

摘要 本文介绍了如何利用Coze平台和Deepseek模型构建自动化Agent智能体,用于生成和优化小红书爆款笔记。文章首先分析了爆款笔记的核心特征,包括精准定位、吸引标题、实用内容、精美排版和热门标签。随后提出Agent智能体的功能需求,涵盖热点追踪、内容生成与优化、数据分析及自动发布等模块。在技术实现上,详细阐述了从环境配置、数据采集到内容生成与优化的全流程,并提供了Python代码示例,展示如何调用Coze函数获取热点数据及竞品笔记。该方案通过智能化的内容创作与运营策略,帮助用户高效打造高曝光的小红书

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2306

智能办公助手——OpenClaw办公自动化集成(2026办公版)

OpenClaw智能办公助手是一款集成任务管理、文档处理等功能的办公自动化系统。该系统采用Python实现,核心功能包括:1)任务管理系统,支持任务增删改查、状态跟踪和统计报表生成;2)文档智能助手,提供文档处理能力。任务管理模块具备优先级设置、状态变更、时间记录等功能,并能生成包含完成率等指标的任务报告。该系统旨在通过自动化办公流程提升工作效率,减少重复性工作。开发者可利用这些模块构建完整的智能办公解决方案。

一键难忘的博客 350

Struts2 输入校验 实例讲解

信息基本校验对于每个web框架输入输入校验都是一个重要的部分,对用户输入的数据进行有效的过滤,是保持系统安全的一方面措施.Struts2也不例外,同样也提供了更简易的输入校验机制,Struts2提供的输入校验有两种方式,一种是硬编码的方式,一种是采用Struts2的输入校验框架进行校验,即采用XML配置的方式进行校验。下面我们看一上采集硬编码的方式如果校验:举例说明:需要对一个用户注册

lilp_ndsc的专栏 1万+

【2024遥感应用组一等奖】基于时空融合和水量平衡法的若尔盖高原水源涵养功能评价

考虑到水源涵养的概念和尺度特征、数据的可获得性、模型的模拟精度等,构建了一种基于遥感、气象和水量平衡原理的草原湿地水源涵养评价方法,估算若尔盖湿地近23年(2000-2022)来的水源涵养量。若尔盖湿地是我国黄河源区的重要水源地,所以本研究以若尔盖湿地的水源涵养功能评估为科学问题,基于遥感数据、GIS数据等,利用水量平衡原理,发展计算简单、便捷、数据易获取的“水源涵养估算方法”,科学估算若尔盖湿地水源涵养服务量,探究其时空动态变化趋势及其影响因素;公式中,Z1和Z2为两个不同高度面的高度,u为摩擦速率;

JData_Engineer的博客 240

Struts2 输入校验

为什么要有输入校验 为什么要有输入校验 输入校验也是所有Web应用必须处理的问题,因为Web应用的开放性, 网络上所有的浏览者都可以自由使用该应用,因此该应用通过输入页面收集的数据是非常复杂的,不仅会包含正常用户的误输入,还可能包含恶意用户的恶意输入。一个健壮的应用系统必须将这些非法输入阻止在应用之外,防止这些非法输入进入系统,这样才可以保证系统不受影响。 ...

venus321的博客 1443

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

海洋之心 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Struts2的输入校验方式

Struts2的输入校验 输入校验的方式: 代码校验配置校验 xml配置校验(常用)注解配置校验 代码输入的校验: 覆盖ActionSupport的validate()方法,在这个方法中完成对参数的校验。validate方法会在参数封装之后,execute方法(也就是Action中定义的方法)执行之前执行。如果validate方法向fieldError中添加了

在路上 1万+

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

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

struts2(七)输入校验

输入校验简述 由于Web应用的开放性,网络上所有浏览者都能够自由地使用该应用,这样该应用通过输入页面收集的数据可能很复杂,不仅会包含正常用户的误输入,还可能包含恶意用户的恶意输入。因此应用系统需要将这些非法输入阻止在应用之外。 异常输入,可能导致系统非正常中断,严重者会导致系统崩溃。应用程序需要正常处理表现层接受的各种数据,通常的做法是遇到异常输入时应用程序直接返回,提示浏览者必须重新输入,也就

泥陶匠 924

struts2 输入校验

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

zcf396720的专栏 394

Struts2的输入校验

有哪些校验? 客户端校验:通过JavaScript 服务器端校验:校验代码 正则表达式基础 30分钟正则表达式t教程 Struts2服务器端校验 1、在execute中实现校验 public String execute()throws Exception{ //验证用户名 if("".equals(user.getUsername())){

Hepershade的专栏 953

输入校验---struts2学习笔记

一. 基于验证框架的输入校验 (服务器端验证) 1. 编写校验配置文件:命名规则:action类名-validatin.xml.  2. 一个action对应多个逻辑处理方法:指定校验摸个特定方法的方式:  action类名-name属性名-validatin.xml.(name属性名:在strtus配置文件中的)  3. 配置文件存放位置:放在与Action相同的文件夹内。  4. 验

如果一个人只能做好那么很少的几件事情 那么就做自己喜欢做的事 1508

Struts的类型转换及输入校验(Struts2的输入校验)

Struts输入校验: (1)在Action类中处理方法进行校验,若没有指定方法就用execute()方法 (2)继承ActionSupport类,并重写其validate()方法实现输入校验 (3)应用struts2框架进行校验

qq_20453707的专栏 513

struts2基本输入校验

输入校验是所有Web应用必须处理的问题,因为Web应用的开放性,网络上所有的浏览者都可以自由使用该应用,因此该应用可以通过输入页面收集的数据是非常复杂的,不仅会包含正常用户的误输入,还可以包含恶意用户的恶意输入。一个健壮的应用系统必须将这些非法输入阻止在应用之外,防止这些非法输入进入系统,这样才能保证系统不受影响。 输入校验分为客户端校验和服务器端校验,客户端校验主要是过滤正常用户的误操作,主要

想念的专栏 437

【Struts2学习笔记(11)】对action的输入校验和XML配置方式实现对action的所有方法进行输入校验

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

徐刘根的博客 2465

ssh学习:struts2的输入校验

struts2的输入校验 1.输入校验的概述 输入校验是对用户的输入是否是按照开发者的意愿的校验 2.输入校验的必要性 由于web的开放性,输入校验会直接影响了系统的稳定性。因为不能保证每个用户的属于都会按照开发者的意图来输入相关的数据,而且有的用户还会恶意输入写非法数据来进行测试和破坏。 3.客户端校验和服务器校验 (1) 客户端校验:一般的开发者都是在客户端使用JS脚本进行对用户的

gaosililin的专栏 424

struts 2的输入校验

struts 2的输入校验一般有一下几种: 1、在action类的处理方法中进行校验。这种方法不推荐使用,因为这样会使得代码臃肿,不易维护。 2、继承ActionSupport类,重写其validate()方法实现输入校验。这个不多说,因为重点在第三种方法里。 3、应用struts 2的校验框架进行校验。使用框架校验需要在程序中创建一个配置文件,文件的名称与内容要按照一定的规则编写才能起到作

zhangfeikk0的专栏 677
上一篇: 2009年七月编程语言排行榜
下一篇: 2009年十月编程语言排行榜
不善^
博客等级 码龄18年 635粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值