我在updatePerson.xhtml中使用了这个h:commandButton来更新人员信息,但是当我点击它时,正在调用页面操作方法(controller.preUpdatePerson),就像我再次进入此页面一样。我对此页面操作的调用更加迷失,因为此时controller.preUpdatePerson中的对象为空,然后在此处停止。
从不调用controller.update。 我不知道为什么会这样。所有实体和控制器都在会话范围内。我尝试了很多组合,它似乎不是一个交易问题。那么这里发生了什么?
系统规格:Seam 2.2.2 JSF 1.2
pages.xml中:
<page view-id="/updatePerson.xhtml">
<action execute="#{controller.preUpdatePerson}" on-postback="false" />
<begin-conversation join="true" flush-mode="manual"/>
updatePerson.xhtml:
<a4j:form id="editPerson" styleClass="inline" enctype="multipart/form-data">
<h:commandButton id="editPerson" value="#{messages['button.save']}"
action="#{controller.update}"/>
...
答案 0 :(得分:0)
根据这个答案commandButton/commandLink/ajax action/listener method not invoked or input value not updated,当页面提交要上传的文件时,我的问题与enctype =“multipart / form-data”有关。 我必须在web.xml中正确配置过滤器。