struts2之校验框架

本文详细介绍了Struts2框架中的验证机制,包括如何通过创建XML配置文件来定义验证规则,以及如何使用不同的验证类型来确保数据的有效性。文中还提供了具体的示例,展示了如何设置字段长度限制和数值范围等。
也就是action的两个后台校验之一,一个是重写validate方法,一个就是写个与action这样的java文件同名的xml文件
如:RegisterAction.java,所建立的校验框架的名字为RegisterAction-validation.xml


在action这样的java文件目录下建立一个名字如:
RegisterAction-validation.xml的xml文件
文件头部如下:

<?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">

DOCTUPE标签中说明了所引用的一个dtd文件的来源。

xml文件的内容如下:

<validators>
<!-- 以下是非字段校验,顺序为我用谁去校验(requiredstring),去校验谁(username) -->
<!-- <validator type="requiredstring">-->
<!-- 下面的param中的name是固定的为fieldName -->
<!-- <param name="fieldName">username</param>
<message>username should not be blank</message>
</validator>

<validator type="stringlength">
<param name="fieldName">password</param>
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>uaername should be between ${minLength} and ${maxLength}</message>
</validator>
-->
<!--以下是字段校验,校验顺序为,我去校验谁(username),用谁去校验 (requiredstring) -->
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>username should not be blank</message>
</field-validator>

<field-validator type="stringlength">
<param name="maxLength">10</param>
<param name="minLength">5</param>
<message>uaername should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>

<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age should be between ${min} and ${max}</message>
</field-validator>
</field>
</validators>

校验分两种校验方式
1:
非字段校验中:
validator 标签是注明用什么类型的校验方式去校验。
<param name="fieldName">username</param> param标签是说明用上面的校验方式校验哪个字段,其中,name="fieldName" 为固定写法。message标签:注明出错时返回给addFieldError中的参数的值。

2:
字段校验:
field标签注明所要校验的字段名称。
field-validator标签注明采用哪个校验类型进行校验。
param标签是注明要校验的内容,如<param name="maxLength">10</param>,校验输入的username不得大于10


注意:此框架校验所得的错误信息都属于field级别,且校验框架的校验顺序,优先于
action这个java文件中的validate方法。


PS:校验类型,和其所属的类

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
<!-- START SNIPPET: validators-default -->
<validators>
<validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
<validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
<validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
<validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
<validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
<validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
<validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
<validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
<validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
<validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
<validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
<validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
</validators>
<!-- END SNIPPET: validators-default -->
【EI复现】基于元模型优化算法的主从博弈多虚拟电厂动态定价和能量管理(Matlab代码实现)内容概要:本文介绍了基于元模型优化算法的主从博弈多虚拟电厂动态定价能量管理的研究,结合Kriging模型多目标遗传算法(NSGA2)实现最优变量求解,旨在提升多虚拟电厂系统在复杂电力市场环境下的调度效率经济效益。研究通过Matlab代码实现,构建了主从博弈框架,其中上级为电网或运营商,下级为多个虚拟电厂,通过动态定价机制引导各虚拟电厂优化自身能量管理策略,兼顾供需平衡、成本控制可再生能源消纳。该方法有效解决了高维非线性优化问题,提升了求解精度收敛速度,适用于多目标、多约束的能源系统优化场景。; 适合人群:具备一定电力系统、优化算法Matlab编程基础的研究生、科研人员及从事能源管理、智能电网相关工作的技术人员;尤其适合致力于虚拟电厂、需求响应、博弈论应用等领域研究的专业人士。; 使用场景及目标:①应用于多虚拟电厂协同调度市场竞价策略设计;②实现动态电价机制下的用户侧响应优化;③为含高比例可再生能源的配电网提供能量管理解决方案;④支持科研复现EI/SCI级别论文中的主从博弈元模型优化方法。; 阅读建议:建议读者结合提供的Matlab代码网盘资料,重点理解Kriging代理模型的构建过程、NSGA2算法的集成方式以及主从博弈的数学建模思路,通过调试仿真逐步掌握算法参数设置性能评估方法,进而拓展至其他复杂能源系统优化问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值