URI に param を含むページでメソッドを呼び出すと、uri のパラメーターを再度渡さない限り、メソッドは呼び出されません。たとえば、私が持っている場合:
http://maywebsite/myapp/mypage.xhtml?mykey=myvalue
このメソッドはエラーになります (明らかに、params なしでページを再度レンダリングしますが、メソッド foo は呼び出されないためです)。
<h:commandLink value="Do Action" actionListener="#{mybean.foo}"/>
そこで、コンポーネントのみを更新するために ajax を追加しましたが、ボタンが起動されません。
<h:commandLink value="Do Action" actionListener="#{mybean.foo}">
<f:ajax render="somecomponent"/>
</h:commandLink>
パラメータ値を再度渡すと、ボタンはメソッドを正常に呼び出します。
<h:commandLink value="Do Action" actionListener="#{mybean.foo}">
<f:param name="mykey" value="myvalue"/>
<f:ajax render="somecomponent"/>
</h:commandLink>
ただし、このボタンはさまざまなパラメーター キーと値を持つ多くのページに含まれています (ui:include)。パラメータ値を渡さずにメソッドを呼び出すにはどうすればよいですか?
グラスフィッシュ3.1.2、jsf 2.0を使用しています