[Seasar-user:2394] Re: [S2JSF]他の入力値を参照するvalidator
yone@abby.co.jp
yone
2005年 7月 20日 (水) 08:36:34 JST
米林です
> MyFaces の validateEqualのように、id で指定できれば嬉しいです。
→上記のやり方とは異なりますが、参考までに下記で他の入力値は取得出来ます。
form の id にも依存してしまいますが。
下記のようなHTMLで
<form id="frm">
<input type="text" id="equal2" m:validator="#{hoge.check}" />
<input type="text" id="equal" />
</form>
hoge クラスに以下を定義し formid:要素id で取得出来ます
public void check(FacesContext context, UIComponent component, Object value)
throws ValidatorException {
Map map = context.getExternalContext().getRequestParameterMap();
String equal = (String)map.get("frm:equal");
// value には equal2 の入力値
if(!value.equals(equal)){
FacesMessage mes = new FacesMessage(
FacesMessage.SEVERITY_ERROR, "不一致", "一致しませんよ");
throw new ValidatorException(mes);
}
}
以上、宜しくお願いします。
> 早速ですが、自身以外の入力を参照するカスタムバリデータは
> どのように作成するのでしょうか?
> 例えばパスワードやメールアドレスのように同じものを2回入力させて
> 一致するか判断するといった、それ自身の入力値とは別に他の入力との
> 組み合わせで判断するようなものです。
> このような場合、S2JSFでは html側でどのように記述して他の入力値を渡し、
> Java側ではどのようにしてその値を取得すればよろしいのでしょうか?
> MyFaces の validateEqualのように、id で指定できれば嬉しいです。
>
> ↓ MyFaces の validateEqual の記述
>
> <h:inputText id="equal2"
> value="#{validateForm.equal2}"
> required="true">
> <x:validateEqual for="equal" />
> </h:inputText>
Seasar-user メーリングリストの案内