package sample.validator;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.util.ValidatorUtils;
import org.apache.struts.action.ActionMessages;
import org.apache.commons.validator.Validator;
import org.apache.commons.validator.Validator;
public class CustomValidator {
public static boolean validateZenkakuAbcde( Object bean,
ValidatorAction va,
Field field,
ActionMessages errors,
Validator v,
HttpServletRequest request) {
// 入力文字をActionFormから取得する
String value = ValidatorUtils.getValueAsString(bean, field.getProperty() );
if ( value != null && value.length() != 0 ){
// 1文字以上の文字が入力されている場合、入力チェックをする
if( !isAllowChar(value) ){
// 入力チェックエラーの為、エラーメッセージをセットする
errors.add( field.getKey(),
Resources.getActionMessage(request, va, field) );
// 入力チェックNGで終了
return false;
}
}
// 入力チェックOKで終了
return true;
}
/*
* 文字列が'ABCDE’のいずれかの場合はOK、それ以外はNG
*/
private static boolean isAllowChar(String text) {
String allowChars = "ABCDE";
int chrCode;
for ( int i = 0; i < text.length(); i++ ) {
chrCode = (int) text.charAt(i);
boolean flg = false;
int allowCode;
for ( int j = 0; j < allowChars.length(); j++ ) {
allowCode = (int) allowChars.charAt(j);
if ( chrCode == allowCode ) {
flg = true;
break;
}
}
if ( flg == false ) {
return false;
}
}
return true;
}
}
|