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