次のページがあります。
<h:form id="gameSelectionForm">
<h:selectOneMenu id="gameSelection">
<f:selectItems value="#{gameBean.gameIds}" />
</h:selectOneMenu>
<h:commandButton id="gameSelector" value="Play" action="#{gameBean.changeGame}" />
</h:form>
<h:panelGroup id="gameDiv">
<f:verbatim>
<iframe src="/levelup/resources/games/#{gameBean.gameId}/#{gameBean.htmlPage}" width="700px" height="800px" frameborder="0"/>
</f:verbatim>
</h:panelGroup>
「gameSelector」ボタンをクリックすると、イベントのシーケンスは次のようになります。 1. gameBean.getGameId と gameBean.getHtmlPage が呼び出されます 2. gameBean.changeGame が呼び出されます 3. ページが更新されます。
私の問題は 1 と 2 の順序にあります。changeGame は、getGameId と getHtmlPage で使用される gameBean 変数を変更します。したがって、他のパネルが更新されたときに適切なデータが含まれるように、最初に実行したいと考えています。
この問題は、gameDiv 要素内の呼び出しでのみ発生するようです (他の変数は適切に更新されます)。
1. と 2. の順序を逆にして、changeGame() メソッドが最初に呼び出されるようにするにはどうすればよいか、何か考えはありますか?
Tomcat 7.0 で JavaServer Faces 2.0 を使用しています。
前もって感謝します