<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 関数名をサポートする必要があります。