[Seasar-user:7692] Re: [Teeda] Validatorでチェックする桁数を可変にしたい
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
2007年 5月 18日 (金) 17:11:00 JST
大谷です。
あまりキレイでは無いですが、
下記のようにすればできます。
肝なところは、TeedaExtensionでは
定数またはTigerアノテーションで記述したValidatorは
内部的にEL式(#{コンポーネント名.プロパティ名})の形で
saveされています。
そのため、initialize()で直接Validatorを管理しているところに
addするようにしておいて、その前に動くLogicをかませば
動的にValidatorのプロパティを決定することが出来ます。
package examples.teeda.web.add;
import javax.faces.internal.ValidatorResource;
import org.seasar.framework.convention.NamingConvention;
import org.seasar.teeda.extension.validator.TRequiredValidator;
public class AddPage {
// public static final String arg1_TGreaterThanConstantValidator = null;
// public static final String arg2_TGreaterThanConstantValidator = null;
private int arg1;
private int arg2;
private int result;
private NamingConvention namingConvention;
public String initialize() {
String componentName = namingConvention
.fromClassNameToComponentName(this.getClass().getName());
ValidatorResource.addValidator("#{" + componentName + ".arg1}",
new TRequiredValidator());
ValidatorResource.addValidator("#{" + componentName + ".arg2}",
new TRequiredValidator());
return null;
}
public int getArg1() {
return arg1;
}
public void setArg1(int arg1) {
this.arg1 = arg1;
}
public int getArg2() {
return arg2;
}
public void setArg2(int arg2) {
this.arg2 = arg2;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public String doCalculate() {
result = arg1 + arg2;
return null;
}
public NamingConvention getNamingConvention() {
return namingConvention;
}
public void setNamingConvention(NamingConvention namingConvention) {
this.namingConvention = namingConvention;
}
}
宜しくお願いします。
07/05/17 に 松崎 学<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 松崎です。いつもお世話になっております。
>
> TByteLengthValidatorやTNumberLengthValidatorでチェックする桁数を
> ロジックでセットする事は可能でしょうか?
> 入力可能桁数をDBのテーブル定義情報から取得してチェックしたいのです。
>
> アノテーションでソースにリテラル指定する事しか出来ないのでしょうか?
>
> 以上、よろしくお願い致します。
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================
Seasar-user メーリングリストの案内