【问题标题】:commandButton actionListener invoking selectOneMenu listenercommandButton actionListener 调用 selectOneMenu 监听器
【发布时间】:2013-02-24 17:34:47
【问题描述】:

我正在使用 JSF 2.0 和 Primefaces 3.4.2

我有一个弹出对话框,其中很少有 inputTextselectOneMenuautoComplete<p:commandButton

我在 selectOneMenu <p:ajax update="dept" listener="#{empMB.loadDepartments}" />中有以下内容

当我单击 commandButton 时,将调用 selectOneMenu 的侦听器和 Converter 类。 我对 commandButton 的方法没有被调用。这可能是什么原因?

JSF 代码

    <p:dialog header="My Panel" style="font-weight:bold"
                    widgetVar="NewDialog" resizable="false" id="NewDlg"
                    showEffect="fade" hideEffect="fade" appendToBody="true"
                    modal="true" position="center top" width="850" height="450">
                    <h:form id="createform">                    
                    <p:panelGrid   columns="6">         

                        <h:outputLabel value="Employee # " for="emp" />
                        <p:autoComplete value="#{mymb.selectedEmployee}"
                            id="emp" minQueryLength="3" 
                            completeMethod="#{mymb.complete}" 
                            var="p" itemLabel="#{p.employeeName}" itemValue="#{p.employeeNumber}"                
                            forceSelection="true" >                           
                             <p:ajax event="itemSelect" listener="#{mymb.handleSelect}" 
                             update ="empnumber phone  /> 
                               <p:column>#{p.employeeName} - #{p.employeeNumber}</p:column>
                        </p:autoComplete>                         

                        <h:outputLabel  value="Department"  />
                        <p:inputText id="empnumber" value="#{mymb.employeeDetail.department}" >
                        </p:inputText>                        
                        <h:outputLabel value="Contact #" for="phone" />
                        <p:inputText id="phone" value="#{mymb.employeeDetail.phone}">
                        </p:inputText>
                        <h:outputLabel value="Employee Number" for="employeenumber" />
                        <p:inputText id="employeenumber" value="#{mymb.employeeDetail.employeeNumber}">
                        </p:inputText>                        
                    </p:panelGrid>
                    <p:separator />
                    <p:panelGrid columns="6">
                        <h:outputLabel value="Employees" for="employees" />
    <h:selectOneMenu id="employees" value="#{empMB.employees}" converter="#{employeesConverter}">
    <f:selectItems value="#{empMB.employeesItems}" var="cat"
    itemLabel="#{cat.employeesName}" itemValue="#{cat.employeesCode}"/>
    <p:ajax update="dept" listener="#{empMB.loadDepartments}" />
</h:selectOneMenu>
<h:outputLabel value="Dept employees" for="dept" />
<p:selectOneMenu id="dept" value="#{empMB.department}">
    <f:selectItems value="#{empMB.departmentList}" var="dep" 
    itemLabel="#{dep.departmentName}"
    itemValue="#{dep.departmentCode}" />
</p:selectOneMenu>

                <p:commandButton value="Save" icon="ui-icon-check" style="margin:0" 
                actionListener="#{empMB.saveRequest}" />

                    </p:panelGrid>
                    <p:separator />
                    </h:form>
                   </p:dialog>

【问题讨论】:

  • 你有什么错误吗?您的支持 bean save 方法如何?正如我告诉你的那样调用转换器是正常的here
  • @XtremeBiker 不,我没有收到任何错误,在 Firebug 中也没有。我在 bean 中的方法public void saveRequest(ActionEvent event){ System.out.println("In save "+employee.getEmployee()); // persistemployeeService.create(employee); }
  • 如果您正在调用另一个方法,您希望如何调用它?
  • @XtremeBiker 抱歉打错了
  • 当您处理整个表单时,JSF 可能无法设置某些字段,例如department 或其他一些字段。可能类型错误,或者转换器失败。在表单中添加p:message 并在没有process="@this" 的情况下更新它,您可能会看到一些东西。

标签: java jsf jsf-2


【解决方案1】:

当您处理整个表单时,JSF 可能无法设置某些字段,例如部门或其他字段。可能类型错误,或者转换器失败。在表单中添加p:message 并在没有process="@this" 的情况下更新它,您可能会看到一些东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2011-11-28
    • 2015-11-24
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    相关资源
    最近更新 更多