初始化期间调用Primefaces Dialog操作



我有一个简单的JSF对话框,它包含在页面中,如:

<ui:include src="add.xhtml"/>

在这个对话框中,我有一个<p:commandButton>,它是在没有点击的情况下执行的。。。

<p:dialog id="spidDialog" header="New SPID Operator" widgetVar="add">
    <h:form>
        <p:messages id="errorMsg" showDetail="true"/>  
        <h:panelGrid columns="2" id="addGrid">
            <h:outputText style="font-size: smaller;" value="SPID Operator Name" />
            <p:inputText id="Name" value="#{sBean.selectedName}" required="true"/>
            <h:outputText style="font-size: smaller;" value="SPID Operator Code" />
            <p:inputText id="Code" value="#{sBean.selectedCode}" required="true" />
        </h:panelGrid>
        <p:commandButton value="Save" actionListener="#{sBean.save(actionEvent)}" 
                         oncomplete="handleDialog('spidDialog', args,add);"
                         update="editOperatorTabForm:Div growl editOperatorTabForm:Table"/>
        <p:commandButton value="Cancel" onclick="add.hide();" immediate="true"/>
    </h:form>
</p:dialog>

操作#{sBean.save(actionEvent)}会导致NullPointerException,但不应在初始化期间调用它。它是在没有任何用户交互的情况下调用的,应该是这样吗?

<p:commandButton actionListener="#{sBean.save(actionEvent)}" ...>

对于actionListener,此表达式语法不正确。它被计算为值表达式,而不是方法表达式。您需要移除(actionEvent)部件。

<p:commandButton actionListener="#{sBean.save}" ...>

最新更新