Действие Primefaces Dialog вызывается во время инициализации - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть простой диалог 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, но оно не должно вызываться во время инициализации. Он вызывается без какого-либо взаимодействия с пользователем, должно ли это иметь место?

1 Ответ

2 голосов
/ 09 февраля 2012

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

Этот синтаксис выражения является неправильным для actionListener. Он был оценен как выражение значения вместо выражения метода. Вам необходимо удалить часть (actionEvent).

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