Struts校验框架

本文详细介绍了Struts2框架中的校验机制,包括字段级校验(field)和非字段级校验(validate),并提供了具体的XML配置示例。同时探讨了如何结合客户端校验提升用户体验,以及如何为特定方法编写专用校验文件。

struts2提供的校验方式
1.字段校验 field (我去校验谁我用谁去校验) felid级别的错误信息都是用feildErrors()显示
2.非字段校验 validate (我用谁去校验我去校验谁)
注意:要是硬编码的方式validate()校验又用校验框架-validate.xml文件进行校验是两者都会执行
     所以一般使用一种就可以了
     当校验方式不是很复杂的话就用xml方式
xwork-2.0.4.jar--com.opensymphony.xwork2.validator.validators--default.xml
校验那个action就要在同一个目录包下见一个action-validation.xml
如:RegisterAction就要建立一个RegisterAction-validate.xml 必须要dtd

============字段校验 field (我去校验谁我用谁去校验)
<?xml version="1.0" encoding="UTF-8"?>
<!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">
type=""type中的属性在com.opensymphony.xwork2.validator.validators--default.xml中有详细的说明
short-circuit="false"表示短路的意思 当值为true时表示当requiredstring不通过时就不校验下面的stringlength
  <field-validator type="requiredstring" short-circuit="false" >
   <param name="trim">true</param>
message是当用户信息校验失败后给用户看到的信息
   <message key="username.xml.invalid"></message>
  </field-validator>
  
  <field-validator type="stringlength">
   <param name="minLength">6</param>
   <param name="maxLength">10</param>
   <message>username should be between ${minLength} and ${maxLength}</message>
  </field-validator>
 </field>
</validators>

============非字段校验 validate (我用谁去校验我去校验谁)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "
http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
 <validator type="requiredstring">
  <param name="fieldName">username</param>
  <message>username should not be blank!</message>
 </validator>
 
 <validator type="stringlength">
  <param name="fieldName">username</param>
  <param name="minLength">6</param>
  <param name="maxLength">10</param>
  <message>username should be between ${minLength} and ${maxLength}</message>
 </validator>
</validators>

Struts2同样支持客户端校验
1.form的主题(theme)一定不能设置为simple
2.将form的validate属性设置为true
   <form action="" validate="true"></form>
3.最好不要使用struts2给我们提供的客户端校验 要用的话可以用javaScript

<s:form action="register.action" theme="simple" onsubmit="return validate()">
每一个元素都有一个id属性可以自己提供<s:textfield name="username" label="username" id="usernameId">

=========针对特定的方法编写特定的校验文件**-**-validation.xml
<action name="register" class="com.test.action.RegisterAction" method="test">
</action>
public class RegisterAction extends ActionSupport
{
 public String test() throws Exception
 {
  return SUCCESS;
 }
}
针对method="test" 调用test()方法 编写特定的校验文件RegisterAction-test-validation.xml

当全局校验文件和局部校验文件都存在时
先校验RegisterAction-vlidation.xml在校验RegisterAction-test-validation.xml
如果一个action要处理多个逻辑就不要写**-validation.xml而是针对每个处理逻辑编写校验文件

public void validate()
{
 System.out.println("validate~~~~~~~~~~~~~~~~~~~"); 
 this.addFieldError("username","aaaaaaaaaaaaaaaa");
 这里的getFieldErrors()实际上是增加了一个FieldError的副本 只能读不能修改错误信息
 this.getFieldErrors().put("username","bbbbbbbbbbbbb");
}
  
1. 真正存放field级别错误信息的对象是LinkedHashMap

2. 该LinkedHashMap的key是String类型的,value是ArrayList类型的
 if (null == username || username.length() < 6 || username.length() > 10)
  {
   List list = new ArrayList();
   
   list.add(username);
   
   this.addActionError(this.getText("username.invalid",new String[]{username}));
  }

3. 对于Action级别的错误信息,实际上是放置在ArrayList中的 所以只有一个参数

代码下载地址: https://pan.quark.cn/s/bc087ffa872a "测控电路课后习题详解"文件.pdf是一份极具价值的学术资料,其中系统地阐述了测控电路的基础理论、系统构造、核心特性及其实际应用领域。 以下是对该文献的深入解读和系统梳理:1.1测控电路在测控系统中的核心功能测控电路在测控系统的整体架构中扮演着不可或缺的角色。 它承担着对传感器输出信号进行放大、滤除杂音、提取有效信息等关键任务,并且依据测量与控制的需求,执行必要的计算、处理与变换操作,最终输出能够驱动执行机构运作的指令信号。 测控电路作为测控系统中最具可塑性的部分,具备易于放大信号、转换模式、传输数据以及适应多样化应用场景的优势。 1.2决定测控电路精确度的关键要素影响测控电路精确度的核心要素包括:(1)噪声与干扰的存在;(2)失调现象与漂移效应,尤其是温度引起的漂移;(3)线性表现与保真度水平;(4)输入输出阻抗的特性影响。 在这些要素中,噪声干扰与失调漂移(含温度效应)是最为关键的因素,需要给予高度关注。 1.3测控电路的适应性表现测控电路在测控系统中展现出高度的适应性,具体表现在:* 具备选择特定信号、灵活实施各类转换以及进行信号处理与运算的能力* 实现模数转换与数模转换功能* 在直流与交流、电压与电流信号之间进行灵活转换* 在幅值、相位、频率与脉宽信号等不同参数间进行转换* 实现量程调整功能* 对信号实施多样化的处理与运算,如计算平均值、差值、峰值、绝对值,进行求导数、积分运算等,以及实现非线性环节的线性化处理、逻辑判断等操作1.4测量电路输入信号类型对电路结构设计的影响测量电路的输入信号类型对其电路结构设计产生显著影响。 依据传感器的类型差异,输入信号的形态也呈现多样性。 主要可分为...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值