struts 自定義validate 問題
請教 : 我的自定義validator 不經過驗證,直接進入action 請幫忙
自定義validator類:
package com.house.validator;
import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.GenericValidator;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.ValidatorUtil;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.validator.Resources;
public class ReValidator implements Serializable {
public ReValidator() {
super();
}
/**
* 驗證重複密碼
*/
public static boolean validateTwoFields(Object bean, ValidatorAction va,
Field field, ActionMessages errors, HttpServletRequest request) {
System.out.println("aaa");
String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
String sProperty2 = field.getVarValue("secondProperty");
String value2 = ValidatorUtil.getValueAsString(bean, sProperty2);
System.out.println(value);
System.out.println(value2);
if (!GenericValidator.isBlankOrNull(value)) {
try {
if (!value.equals(value2)) {
errors.add(field.getKey(), Resources.getActionError(
request, va, field));
return false;
}
} catch (Exception e) {
errors.add(field.getKey(), Resources.getActionError(request,
va, field));
return false;
}
}
return true;
}
}
form 是 動態form
<form-bean name="registerForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="key" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
<form-property name="re_password" type="java.lang.String"/>
<form-property name="clue" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
</form-bean>
validator-rules
<validator name="twoFields"
classname="com.house.validator.ReValidator"
method="validateTwoFields"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.twofields" />
validation 中
<field
property="password"
depends="required,minlength,twoFields">
<arg0 key="variable.password"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<arg2 name="twoFields" key="variable.re_password"/>
<var>
<var-name>minlength</var-name>
<var-value>8</var-value>
</var>
<var>
<var-name>secondProperty</var-name>
<var-value>re_password</var-value>
</var>
</field>
自定義validator類:
package com.house.validator;
import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.GenericValidator;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.ValidatorUtil;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.validator.Resources;
public class ReValidator implements Serializable {
public ReValidator() {
super();
}
/**
* 驗證重複密碼
*/
public static boolean validateTwoFields(Object bean, ValidatorAction va,
Field field, ActionMessages errors, HttpServletRequest request) {
System.out.println("aaa");
String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
String sProperty2 = field.getVarValue("secondProperty");
String value2 = ValidatorUtil.getValueAsString(bean, sProperty2);
System.out.println(value);
System.out.println(value2);
if (!GenericValidator.isBlankOrNull(value)) {
try {
if (!value.equals(value2)) {
errors.add(field.getKey(), Resources.getActionError(
request, va, field));
return false;
}
} catch (Exception e) {
errors.add(field.getKey(), Resources.getActionError(request,
va, field));
return false;
}
}
return true;
}
}
form 是 動態form
<form-bean name="registerForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="key" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
<form-property name="re_password" type="java.lang.String"/>
<form-property name="clue" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
</form-bean>
validator-rules
<validator name="twoFields"
classname="com.house.validator.ReValidator"
method="validateTwoFields"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.twofields" />
validation 中
<field
property="password"
depends="required,minlength,twoFields">
<arg0 key="variable.password"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<arg2 name="twoFields" key="variable.re_password"/>
<var>
<var-name>minlength</var-name>
<var-value>8</var-value>
</var>
<var>
<var-name>secondProperty</var-name>
<var-value>re_password</var-value>
</var>
</field>
相關文章
- jQuery Validate新增自定義驗證規則jQuery
- jQuery Validate自定義驗證錯誤資訊jQuery
- struts的常用配置以及自定義攔截器
- jQuery Validate自定義錯誤資訊顯示位置jQuery
- 自定義View的硬體加速問題View
- mongoose使用validate驗證, 獲取自定義驗證資訊Go
- 自定義RedisTemplate,解決Redis亂碼問題Redis
- flume自定義攔截器遇到的問題
- Laravel 自定義驗證規則的問題Laravel
- Laravel, vee-validate, 阿波羅 自定義表單時時驗證Laravel
- tensorflow2.0 自定義類模組列印問題
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- THINKPHP 3.23beta版本 自定義行為有問題。PHP
- WinForm 載入自定義控制元件閃爍問題ORM控制元件
- 【Flutter 專題】124 日常問題小結 (三) 自定義 Dialog 二三事Flutter
- jQuery Validate自定義表單元素驗證通過和不通過的樣式jQuery
- 解決spring security自定義filter重複執行問題SpringFilter
- SwitchResX自定義解析度時遇到的問題彙總
- Android8 自定義廣播接收不到的問題Android
- Hanlp配置自定義詞典遇到的問題與解決方法HanLP
- 自定義部落格園主題
- Jquery Validate自定義驗證規則,一個漢字等於兩個字元長度jQuery字元
- win10如何自定義主題_win10怎麼設定自定義主題Win10
- netty系列之:自定義編碼和解碼器要注意的問題Netty
- QT 自定義QGraphicsItem 縮放後旋轉 圖形出現漂移問題QT
- [BUG反饋]新增編輯文章,模型自定義模版不顯示問題模型
- mysql 轉義問題MySql
- Hexo 主題開發之自定義模板Hexo
- iOS8 自定義UITabBar (使用popToViewController導致的UITabBarButton重疊的問題)iOSUItabBarViewController
- 小程式自定義音訊元件,帶滾動條,IOS迴圈失效問題音訊元件iOS
- vue單頁面應用在iOS版微信下自定義分享的問題VueiOS
- Higress 基於自定義外掛訪問 RedisRedis
- SpringBoot + 通義千問 + 自定義React元件,支援EventStream資料解析!Spring BootReact元件
- C++自定義貪吃蛇Snake類一系列問題的解決C++
- skywalking-agent 自定義外掛的幾個問題想請教一下
- QT 自定義外掛問題 error: LNK2001: 無法解析的外部符號QTError符號
- vscode 自定義c++標頭檔案,編譯過程中遇到的問題VSCodeC++編譯
- HarmonyOS NEXT 5.0自定義增強版導航欄元件|鴻蒙ArkUI自定義標題欄元件鴻蒙UI
- android自定義view(自定義數字鍵盤)AndroidView