Struts2 Action验证比表单
原创
©著作权归作者所有:来自51CTO博客作者请你打开电视看看的原创作品,请联系作者获取转载授权,否则将追究法律责任
1,action中重写 validate方法
action继承ActionSuppott 重写 validate方法(全局的)
action中所有方法都要经过该方法中的验证才能执行
/**
* @Description: 重写validate方法(strut2自带表单验证) 验证表单数据
* @return: void
* @Author: LIANG
* @Date: 2021/1/24 13:22
*/
@Override
public void validate() {
if(StringUtils.isEmpty(user.getUsername())){
addFieldError("username","用户名不能为空");
}
if(StringUtils.isEmpty(user.getPassword())){
addFieldError("password","密码不能为空");
}
}
全局改局部:
1,写方法名格式为validate+方法名(首字母大写)的验证方法,这种方法只对改方法执行有效
public void validateRegister() {
if(StringUtils.isEmpty(user.getUsername())){
addFieldError("username","用户名不能为空");
}
if(StringUtils.isEmpty(user.getPassword())){
addFieldError("password","密码不能为空");
}
}
2,可以对不需要经过验证的方法添加 @SkipValidation注解
2,xml方式
全局
在action同一目录下创建格式名为action类名-validation.xml xml文件
在\struts2-core-2.5.26.jar!\xwork-validator-1.0.dtd中找到dtd并引入创建的xml文件中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<!-- 使用file校验字段-->
<field name="username">
<field-validator type="requiredstring">
<param name="fieldName">username</param>
<message>用户名不能为空</message>
</field-validator>
</field>
<validator type="requiredstring">
<param name="fieldName">password</param>
<message>密码不能为空</message>
</validator>
</validators>
全局改局部:
在action同一目录下创建格式名为action类名-方法名-validation.xml xml文件注:使用以上方式验证表单 需要使用struts内置的标签
xml的数据规约param参数参考default.xml中标注的类
path:\struts2-core-2.5.26.jar!\com\opensymphony\xwork2\validator\validators\default.xml