p:commandButton动作属性未调用

时间:2020-04-06 12:51:07

标签: jsf primefaces

我正在尝试将表单的内容提交给托管bean storeAppointment()中的方法,但是从不触发commandButton的action属性。如果我使用onclick属性,则将调用托管bean中的方法,但是,在加载页面时,onclick属性也会触发,这不是我想要的。我的表格如下:

<h:form>
    <p:growl id="msgs" showDetail="true" skipDetailIfEqualsSummary="true">
        <p:autoUpdate />
    </p:growl>

    <h:panelGrid columns="2" cellpadding="5">
        <p:outputLabel for="start" value="Start Time" />
        <p:datePicker id="start" value="#{createAppCtrl.startTime}" showTime="true" stepMinute="5"/>

        <p:outputLabel for="finish" value="Finish Time" />
        <p:datePicker id="finish" value="#{createAppCtrl.finishTime}" showTime="true" stepMinute="5"/>

        <h:outputLabel for="multiple" value="Multiple:" />
        <p:selectCheckboxMenu id="multiple" value="#{createAppCtrl.selectedUsers}" label="Users" multiple="true"
                                      filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
            <p:ajax event="itemUnselect" listener="#{createAppCtrl.onItemUnselect}" />
                <f:selectItems value="#{createAppCtrl.involvement}" />
            </p:selectCheckboxMenu>
    </h:panelGrid>

    <p:commandButton value="Submit" 
                     action="#{createAppCtrl.storeAppointment}" 
                     update="displayItems" 
                     oncomplete="PF('itemDialog').show()"/>

    <p:dialog header="Selected Items" modal="true" showEffect="fade" hideEffect="fade" widgetVar="itemDialog" width="250">
        <p:outputPanel id="displayItems">
            <h:outputText value="Time: " />
            <h:outputText value="#{createAppCtrl.startTime}" >
                <f:convertDateTime pattern="MM/dd/yyyy HH:mm" />
            </h:outputText>

            <h:outputText value="Time: " />
            <h:outputText value="#{createAppCtrl.finishTime}">
                <f:convertDateTime pattern="MM/dd/yyyy HH:mm" />
            </h:outputText>

            <p:dataList value="#{createAppCtrl.selectedUsers}" var="city" emptyMessage="No cities selected" style="margin-bottom: 10px;">
                <f:facet name="header">
                    Multiple
                </f:facet>
                #{city}
            </p:dataList>
        </p:outputPanel>
    </p:dialog>
</h:form> 

单击commandButton时,updateoncomplete属性将按预期工作,但是oncomplete显示的对话框仅显示空值。 action所调用的方法是#{createAppCtrl.storeAppointment}

    public String storeAppointment() {
        try {
            System.out.print(startTime + "    " + finishTime + "    " + involvement);
            appointmentBean.createAppointment(startTime, finishTime, involvement);
            return "";
        } catch (Exception e) {
            System.out.print("Ctrl: " + e);
            return "";
        }
    }

0 个答案:

没有答案
相关问题