JSF ajaxリクエストで入力の値を変更しようとしています。値を変更するJSF ajaxイベント
私は、JSFのコードがあります。
<h:inputSecret id="pwd" value="#{info.password}" redisplay="true">
<f:ajax event="focus" listener="#{info.changePassword}" />
</h:inputSecret>
をしてinfo
Beanが含まれています
public String getPassword() {
return "";
}
public void changePassword(AjaxBehaviorEvent e) {
UIInput input = (UIInput)e.getComponent();
input.setValue(createRandomPassword());
}
createRandomPassword()
は短いランダムな文字列を作成します。
入力がフォーカスになると、changePassword
関数が呼び出され、ランダムな文字列が設定されていることがわかりますが、入力値は空のままです。
だからなぜsetValue
に値を設定しないのですか?どうすればそれを動作させることができますか?
の属性をレンダリング使用して、その値を設定した後、パスワードの入力コンポーネントを再レンダリングする必要があります。サーバーサイドモデルを更新するだけです。しかし、単に「パスワード」というフィールドを作成して、イベントからの入力を取得する代わりにそのフィールドを設定するのはなぜですか? – Kukeltje
@Kukeltje私はJSFの新機能です。私はそれが仕事をすると思っていました。私に例を教えてもらえますか? – nrofis
いくつかの**良い**チュートリアルから始めてください... https://stackoverflow.com/tags/jsf/infoを参照してください。これは基本的なことです。これらを読むことで、これともっと多くのことを知ることができます。 。 – Kukeltje