0

IamはJSF2.0を使用しており、そのページのユーザーアクティビティに基づいてajaxを使用してコンポーネントのグループをレンダリングしています。これは正常に機能しますが、コンポーネントがレンダリングされた後、レンダリングされたコンポーネント内のユーザーアクティビティに基づいてajax呼び出しを再度実行していますこれは私のajax呼び出しが失敗する場所.両方のシナリオで同じ実装を行いましたが、なぜ失敗するのかわかりません.誰かがエラーを理解するのを手伝ってくれますか?

以下はコードです:

最初の ajax 呼び出し:

 <h:commandLink id="addMultiple" value="Add" >                  
<f:ajax execute="addMultiple" render="additionalField " listener="#{Bean.doAddMultiple}"/>
</h:commandLink>

レンダリングされたコンポーネント:

 <h:panelGroup id = "additionalField"   > 
 <h:outputText  value="New Field:"  rendered="#{Bean.multiple eq 'true'}" />
 <h:inputText style="width:10%" value="#{Bean.Number}"  rendered="#{Bean.multiple eq 'true'}" />
<h:commandButton id="add" value = "Add"  rendered="#{Bean.multiple eq 'true'}">
<f:ajax event="click" execute="add" render="textBoxes" listener="#{Bean.doaddTextboxes}"/>  
</h:commandButton>
</h:panelGroup>

上記のコンポーネントは正常にレンダリングされます。同じ形式の「​​textBoxes」コンポーネントと、AJaxBehaviour イベントをパラメーターとして受け取るマネージド Bean メソッドがあります。しかし、ここでの問題は、2 番目の AJAX 呼び出しが起動されないことです。

4

1 に答える 1

1

に変更し@ViewScopedます。一般に、ajax は atlesat で実行する方が適切@ViewScopedです...各送信時に作成される Bean の新しいインスタンスを引き起こします...

このJSF - Ajax call - What is it wrong on this code? もご覧ください。そしてこれ@ViewScoped の利点と落とし穴

また、こちらのBalusCArjan Tijmsの回答を見てください JSF - Can @PostConstruct block setter method by using an ajax call?

于 2012-12-11T11:08:53.897 に答える