1

<h:commandButton>によってフォームを送信する があります<f:ajax>

<h:commandButton  value="Create Project" styleClass="greyishBtn submitForm">
    <f:ajax execute="@form" listener="#{projectController.create}" 
        render=":tblProject" />
</h:commandButton>

それは正常に機能しますが、onevent次のような属性を追加しようとすると:

<f:ajax execute="@form" listener="#{projectController.create}"
    onevent="createProjectEventHandler" render=":tblProject" />

既に含まれている次の JavaScript を使用します。

function createProjectEventHandler(data){
    console.log('sth happened');
}

ボタンをクリックすると、ページがリロードされます。マネージド Bean に送信されたものは何も表示されず、コンソールにも何も表示されません。

これはどのように発生し、どうすれば解決できますか?


更新:次のアプローチで動作します:

<f:ajax execute="@form" listener="#{projectController.create}" 
    onevent="function(data) {console.log('aaa');}" render=":tblProject" />

どうしてこんなことに?f:ajax events に関する Java EE 6 チュートリアルに基づいて、onevent属性は JavaScript 関数名をサポートする必要があります。

4

1 に答える 1

-1

Netbeans でも同じ問題がありました。

Netbeans で JSF ページを作成するxmlns:f="http://xmlns.jcp.org/jsf/core"と、XML 名前空間 URI として生成されました。しかし、私が実際に JSF 2.0/2.1 を使用していたとき、それは JSF 2.2 固有のものでした。

XML 名前空間 URI を に変更するとxmlns:f="http://java.sun.com/jsf/core"、うまくいきました。

于 2015-05-20T11:54:27.350 に答える