[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 メーリングリストの案内