私はこれに頭を悩ませています...私はcommandLink要素が機能しているプロジェクトをたくさん持っていますが、このプロジェクトでそれを機能させることはできません。私はここでBalusCの応答に従いました:commandButton / commandLink / ajaxアクション/リスナーメソッドが呼び出されないか、入力値が文字まで更新されていませんが、それでも喜びはありません。
現在、私は自分のコードを可能な限り単純なものにまとめました。
@ManagedBean
@SessionScoped
public class TestBean {
private @Inject transient Logger logger;
public void testEvent(ActionEvent actionEvent) {
logger.log(Level.INFO, "Event Fired!!");
return;
}
}
私のxhtmlファイルには次のものがあります。
<h:form>
<h:commandLink id="test" actionListener="#{testBean.testEvent}" value="Test Me!"/>
</h:form>
リンクをクリックすると、メソッドは呼び出されず、web-appsルートにリダイレクトされます(ログインフィルターがあるにもかかわらず、ログインページ:/)リンクをcommandButtonに変更すると、期待どおりに機能します。
現在のアプリケーションはテンプレートにui:compositionタグを使用しており、ネストされたh:formタグをトリプルチェックしました。ajax呼び出しや追加のJSライブラリは使用していません。私のテンプレートは、重要な場所、つまりh:head、h:bodyなどにjsfタグを実装しています。誰かが私が経験している奇妙な動作の兆候または考えられる原因を提供できますか?
最後に、このcommandLinkをWebアプリ内のさまざまなページでテストしましたが、commandLink要素は一般に呼び出しを拒否します。
誰かが興味を持っているなら、これが私のリンクのコンパイルされたhtmlです:
<form id="j_idt26" name="j_idt26" method="post" action="/my-project/webpages/Login.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt26" value="j_idt26" />
<a id="j_idt26:test" href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt26'),{'j_idt26:test':'j_idt26:test'},'');return false">Test Me!</a><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="-109553560791909389:-730254890454894147" autocomplete="off" />
</form>