Jrailsのほうが自分向きに違いないあーでもないこーでもないと逃避言い訳モード全開寸前
そんな絶賛後ろ向きなモチベーションの中、こんな記事ハケーン
■Javaで軽快に使える「軽量フレームワーク」特集〜Apache Wicketで簡単Webアプリ作成(1)
http://codezine.jp/article/detail/4459
ああああああああ
やっぱ自分は Java が好きなんだなぁ愛してるなぁ Java でまたしゃべりたいなぁ
---
参考
package myClass.validator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.Validator;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.util.ValidatorUtils;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.validator.FieldChecks;
import org.apache.struts.validator.Resources;
public class EnhancedFieldChecks extends FieldChecks {
private static final long serialVersionUID = 1L;
private static final String P_HIRAGANA_ONLY = "[\\p{InHiragana}]*";
private static final String P_KATAKANA_ONLY = "[\\p{InKatakana}]*";
private static final String P_KANJI_ONLY = "[\\p{InCJKUnifiedIdeographs}]*";
/**
* ひらがなで入力されているか
* @param bean
* @param validatorAction
* @param field
* @param errors
* @param validator
* @param request
* @return
*/
public static boolean validateHiragana(
Object bean,
ValidatorAction validatorAction,
Field field,
ActionMessages errors,
Validator validator,
HttpServletRequest request
) {
return isValidStatus(
bean, validatorAction, field, errors, validator, request, P_HIRAGANA_ONLY
);
}
/**
* カタカナで入力されているか
* @param bean
* @param validatorAction
* @param field
* @param errors
* @param validator
* @param request
* @return
*/
public static boolean validateKatakana(
Object bean,
ValidatorAction validatorAction,
Field field,
ActionMessages errors,
Validator validator,
HttpServletRequest request
) {
return isValidStatus(
bean, validatorAction, field, errors, validator, request, P_KATAKANA_ONLY
);
}
/**
* 漢字で入力されているか
* @param bean
* @param validatorAction
* @param field
* @param errors
* @param validator
* @param request
* @return
*/
public static boolean validateKanji(
Object bean,
ValidatorAction validatorAction,
Field field,
ActionMessages errors,
Validator validator,
HttpServletRequest request
) {
return isValidStatus(
bean, validatorAction, field, errors, validator, request, P_KANJI_ONLY
);
}
/*
* 共通Validate処理
*/
private static boolean isValidStatus(
Object bean,
ValidatorAction validatorAction,
Field field,
ActionMessages errors,
Validator validator,
HttpServletRequest request,
String pattern
) {
String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
boolean isMyPattern = isMyCharacter(value, pattern);
if (!isMyPattern){
errors.add(field.getKey(), Resources.getActionMessage(
validator, request, validatorAction, field));
}
return isMyPattern;
}
/*
* 共通チェック
*/
private static boolean isMyCharacter(String str, String pattern){
Pattern p = Pattern.compile(pattern);
Matcher matcher = p.matcher(str);
return matcher.matches();
}
}
<validator name="hiragana"
classname="myClass.validator.EnhancedFieldChecks"
method="validateHiragana"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.hiragana"/>
<validator name="katakana"
classname="myClass.validator.EnhancedFieldChecks"
method="validateKatakana"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.katakana"/>
<validator name="kanji"
classname="myClass.validator.EnhancedFieldChecks"
method="validateKanji"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.kanji"/>
(snip)
<form name="/orderSubmit">
<field
property="firstNameKana"
depends="required, maxlength, hiragana">
<arg0 key="offer.firstnamekana"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>30</var-value>
</var>
</field>
<field
property="lastNameKana"
depends="required, maxlength, hiragana">
<arg0 key="offer.lastnamekana"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>30</var-value>
</var>
</field>
(snip)
</form>
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |