我有一个<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" />
为什么会这样?根据{{3}},onevent
属性应支持JavaScript函数名称。
答案 0 :(得分:-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"
时,它对我有效。