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>
相關文章
- 急急急急!Struts自定義標籤html:text 問題HTML
- 一個很奇怪的問題:關於struts自定義標籤
- 【Struts2】:自定義Interceptor
- jQuery Validate自定義驗證成功資訊jQuery
- jQuery validate 自定義樣式、規則jQuery
- jQuery Validate自定義驗證錯誤資訊jQuery
- jQuery Validate新增自定義驗證規則jQuery
- Struts2自定義攔截器
- jQuery Validate自定義錯誤資訊顯示位置jQuery
- iOS 自定義字型出問題啦!iOS自定義字型
- 自定義標籤出現問題
- 自定義View的硬體加速問題View
- mongoose使用validate驗證, 獲取自定義驗證資訊Go
- struts的常用配置以及自定義攔截器
- Laravel 自定義驗證規則的問題Laravel
- flume自定義攔截器遇到的問題
- 在自定義View時碰到的奇怪問題View
- tensorflow2.0 自定義類模組列印問題
- MySQL自定義變數處理行號問題MySql變數
- POWERBUILDER KODIGO 框架 自定義透明圖片問題UIGo框架
- Struts Tiles應用問題
- struts原始碼的問題原始碼
- struts2 namespace問題namespace
- Laravel, vee-validate, 阿波羅 自定義表單時時驗證Laravel
- WinForm 載入自定義控制元件閃爍問題ORM控制元件
- Spring Boot(3)---自定義spring boot starter 問題Spring Boot
- Struts2+Hibernate+Spring分頁自定義標籤Spring
- Struts Tiles 和 session的問題Session
- struts怪問題 高手請進
- Struts中global-forwards問題Forward
- THINKPHP 3.23beta版本 自定義行為有問題。PHP
- SwitchResX自定義解析度時遇到的問題彙總
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- Docker 自定義網橋後,無法正常啟動問題Docker
- 自定義 ItemDecoration 這個問題你真的注意到了嗎
- 使用者自定義控制元件拖拽失敗問題控制元件
- 自定義的scene用initWithPhysics初始化出現的問題
- Hibernate使用者自定義資料型別問題資料型別