Java Struts2 自定义validation验证

本文介绍如何在Struts2框架中创建自定义验证器BadwordFilter,并配置到validators.xml文件中,实现对特定字段的过滤词检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义验证类,继承FieldValidatorSupport,重写validate方法即可。


import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;

public class BadwordFilter extends FieldValidatorSupport{

@Override
public void validate(Object obj) throws ValidationException {
String fieldName = getFieldName();
Object object = getFieldValue(fieldName, obj);
if(object == null)
return ;
String value = object.toString();
if (value == null || value.length() <= 0)
return;

if(isValidWord(value,11) == true){
this.addFieldError(fieldName, obj);
}
}

public boolean isValidWord(String str1) {
boolean isExist = false;
if(str1 == "123456")
isExist = true;
return isExist;
}
}



配置validators.xml
这个文件要和struts.xml放在同一个目录下,因为启动要加载嘛。

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

<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="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
<validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
<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"/>
<validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
<validator name="badword" class="com.hx.corebase.validtor.BadwordFilter"/>
</validators>



这样就可以跟struts validator的一样配置了验证了。

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">

<validators>
<field name="badword">
<field-validator type="requiredstring">
<message >请输入昵称</message>
</field-validator>
<field-validator type="badword">
<message >存在过滤词</message>
</field-validator>
</field>
</validators>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值