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.2 特有的,而我实际使用的是 JSF 2.0/2.1。

当我将 XML 命名空间 URI 更改为 时xmlns:f="http://java.sun.com/jsf/core",它对我有用。

于 2015-05-20T11:54:27.350 回答