我有一个简单的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,但不应在初始化期间调用它。如果是这种情况,它是在没有任何用户交互的情况下调用的吗?
答案 0 :(得分:2)
<p:commandButton actionListener="#{sBean.save(actionEvent)}" ...>
此actionListener
的表达式语法不正确。它被评估为值表达式而不是方法表达式。您需要删除(actionEvent)
部分。
<p:commandButton actionListener="#{sBean.save}" ...>