actionListener没有';t工作于jsf和primefaces

actionListener没有';t工作于jsf和primefaces,jsf,jsf-2,primefaces,actionlistener,Jsf,Jsf 2,Primefaces,Actionlistener,我有一个带有primefaces的.xhtml文件,还有一个带有一个commandButton的表单,当尝试启动actionListener时,它不起作用这是表单: <h:form id="formCreate"> <p:dialog header="Crear" widgetVar="usuarioDlgCreate" resizable="false" id="usuDlgCreate"

我有一个带有primefaces的.xhtml文件,还有一个带有一个commandButton的表单,当尝试启动actionListener时,它不起作用这是表单:

<h:form id="formCreate">
                <p:dialog header="Crear" widgetVar="usuarioDlgCreate" resizable="false" id="usuDlgCreate"  
                          showEffect="fade" hideEffect="explode" modal="true">  

                    <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">  

                        <h:outputText value="Rol:" />  
                        <p:inputText value="#{usuarioBean.usuarioSeleccionado.rolId}"/>  

                        <h:outputText value="Nombre:" />  
                        <p:inputText value="#{usuarioBean.usuarioSeleccionado.nomUsuario}"/>  


                        <h:outputText value="Email:" />  
                        <p:inputText value="#{usuarioBean.usuarioSeleccionado.email}" size="30"/>  

                        <f:facet name="footer">
                            <p:separator/>
                            <p:commandButton id="btnNewAccept" actionListener="#{usuarioBean.create(actionEvent)}" title="Guardar" value="Guardar"/>  
                            <p:commandButton id="btnNewCancel" oncomplete="usuarioDlgCreate.hide()" icon="ui-icon-new" title="Cancelar" value="Cancelar"/>  
                        </f:facet>
                    </h:panelGrid>  

                </p:dialog>  

            </h:form>
已尝试使用以下按钮:

以及不带参数ActionEvent的方法:

也像这样(没有括号):


但是不要开枪的方法,请帮帮我。。。。非常感谢

首先,您应该像这样更改属性:
actionListener=“#{usuarioBean.create}”

其次,确保使用的是
javax.faces.event.ActionEvent


如果仍然不起作用,您应该验证是否存在验证错误,您可以尝试添加
h:messages
以查看是否出现问题。

我也有类似问题,actionListener在组件中用作值表达式对象时未被激发。提交未成功,未显示错误消息(也未记录)。所以我将值表达式更改为简单变量:整数、字符串等,然后再对我进行操作

之前:

<p:selectOneMenu value="#{formCalendarDay.airplane}">
  <f:selectItems value="#{classifiers.airplanes}" var="airplane" itemLabel="#{airplane.name}" itemValue="#{airplane}"/>  
</p:selectOneMenu> 

修复后:

<p:selectOneMenu value="#{formCalendarDay.airplaneId}">
  <f:selectItems value="#{classifiers.airplanes}" var="airplane" itemLabel="#{airplane.name}" itemValue="#{airplane.id}"/>  
</p:selectOneMenu> 


试着将表单放在对话框中-而不是相反的方式

好吧,我解决了这个问题,似乎Primefaces 3.5和Glassfish 4.0不太好用,所以我改为Primefaces 4.0,它就可以用了。

所以我的bean方法不需要参数(ActionEvent)?我正在使用:import javax.faces.event.ActionEvent;不,这是
actionListener
的签名。JSF本身提供了参数。我将:放入我的表单中,但不显示任何东西不会触发事件不知道我还能做什么,如果我检查firebug控制台,响应是:但不调用方法。我解决了这个问题,Priemfaces 3.5和Glasfish 4.0似乎写得不太好,所以我与primefaces 4.0进行了比较,结果很好。
<p:selectOneMenu value="#{formCalendarDay.airplaneId}">
  <f:selectItems value="#{classifiers.airplanes}" var="airplane" itemLabel="#{airplane.name}" itemValue="#{airplane.id}"/>  
</p:selectOneMenu>