[Seasar-user:4157] Re: [S2JSF]比較する値を固定値としたS2GreaterEqualValidatorについて。
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
2006年 7月 24日 (月) 12:30:42 JST
shotです。
下記のようなやり方はいかがでしょうか?
新しくValidtorを作ります。S2GreaterEqualValidatorは、targetで指定された
UIComponentから値をとりますが、以下のように値を直接取得するようにしておきます。
(valueの値のクラスは適宜変更してください)
public class S2ValueFixedGreaterEqualValidator extends S2GreaterEqualValidator {
private Object value;
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
if (value == null) {
return;
}
Object targetValue = getValue();
if (targetValue == null) {
return;
}
if (!(value instanceof Comparable)
|| ((Comparable) value).compareTo(targetValue) < 0) {
Object[] args = { UIComponentUtil.getLabel(component) };
throw new ValidatorException(MessageUtil.getS2ErrorMessage(
GE_MESSAGE_ID, args));
}
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
}
そして、diconで好きな値をインジェクトしてやれば
Validationかかるはずです。
<component name="valueFixedGreaterEqualValidator"
class="org.seasar.jsf.validator.S2ValueFixedGreaterEqualValidator"
instance="prototype">
<property name="">new Integer(1)</property>
</component>
HTML上では、
To:
<input id="to" type="text"
m:label = "To">
<span m:inject="s:validator"
m:binding="#{valueFixedGreaterEqualValidator}"/>
</input>
のように指定します。
イメージだけで、ぜんぜん試してませんが
多分うまくいくのではないでしょうか?
よろしくお願いします。
06/07/24 に ITS Shinichiro Wakamiya<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 若宮@ITSです。
>
> org.seasar.jsf.validator.S2GreaterEqualValidator
> について、比較する値を固定値として使用することは、可能でしょうか。
>
> 一般的には、m:targetId に比較先のidを入れることが多いと思いますが、
> たとえば、1 以上の入力を行わせる場合、m:targetIdに固定値を記述できるのでしょ
> うか
>
> From:
> <input id="from" type="text" m:label = "From"></input>
> - To:
> <input id="to" type="text" m:label = "To">
> <span m:inject="s:validator"
> m:binding="#{greaterEqualValidator}"
> m:targetId="from"/>
> </input>
>
> 以上
> よろしくお願いいたします。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
>
--
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================
Seasar-user メーリングリストの案内