私は、ユーザーが新しいアカウントを作成するのに役立つJSFプロジェクトに取り組んでいます。ページには2つのラジオボタンがあります。JSF Beanで値を設定してリセットする際に直面する問題
<h:selectOneRadio value="#{accountBeans.radioData}" onClick="Common.showRadioButton(value)">
<f:selectItem itemValue="1" itemLabel="Item 1" />
<f:selectItem itemValue="2" itemLabel="Item 2" />
</h:selectOneRadio>
onclick Common.jsで定義されているjavascript関数に行きます。 accountBeans.javaのgetterおよびsetterメソッドでは、Beanの値を次のように設定します。
public String radioData = null;
public String getRadioData() {
return radiodata;
}
public void setRadioData(String radioData) {
this.radioData = radioData;
}
ユーザーが初めてこのページにアクセスすると、両方のラジオボタンが選択されていない必要があります。これが起こるために私はメソッドを作成しました。これはaccountBeansのをreinitilizeし、以前に保存された値を使用する代わりにradioDataの値をnullにリセットします。
私がこのアプローチに直面している問題は、ラジオボタンを選択した後に他のページに移動し、値がリセットされた同じページに戻ったときです。アカウントが作成されるまでユーザーが選択した値が必要です。
再初期化メソッドを使用して保存された値をリセットしないと、新しいアカウントを作成する際に以前に保存されていた値が保持されていることが問題になります。誰でも私に教えてください、どのようにアカウントが作成されるまでradioDataの値を保持し、新しいアカウントの作成のためにradioData値がnullになるようにしてください。
Java Bean標準の一部は、カプセル化を使用することです。あなたのプロパティはなぜpublicですか?使用しているBeanスコープも追加してください。 JSF ManagedBeansを使用しているとしますか?CDIが公開フィールドに関するエラーを投げるだけなので、 –
はい、私はJSFマネージドBeanを使用しています。パブリックフィールドにエラーを投げているわけではありません。 – Sanket
'Common.showradio ...'のコードを表示できますか –