JSF + Primefaces 新手。(使用 JSF 2.1,Primefaces 3.4.2)
我有一个表单,它有一个内部 panelGroup,它使用 Primefaces commandButton 来获取数据以填充各种表单组件。partialSubmit 解决了尚未填充的字段的验证问题,因此效果很好。该页面按预期运行,但现在我正在尝试将实现调整为“更清洁”。
我的问题与我用于表单使用的支持 bean 的 JSF 范围有关。使用会话范围,一切都很好,但在使用请求范围时就不行了。据我了解,“最终”提交(通过另一个 p:commandButton 组件)和此获取按钮都在调用提交,因此对任何一个的响应都构成了请求生命周期的完成。如果我是正确的,它解释了为什么我得到(使用请求范围)以下内容:
java.lang.IllegalStateException:在提交响应后无法创建会话
使用获取按钮时。
但很明显,这“打破”了我对获取请求的意图,只是导致表单通过 bean 使用更新的数据。
那么,我的理解是否正确,任何使用中间提交的设计模式(通过 partialSubmit="true" commandButton(默认情况下启用 ajax 行为)都需要使用至少会话范围的支持 bean?理想情况下, 实现请求与导航级别请求的机制将允许在 1 个请求的上下文中完成这些中间提交。或者我需要做一些额外的研究吗?(获取 JSF 2.x 书而不是使用我的 1.2 副本?) MTIA 的任何反馈。
我的获取组件:
<p:commandButton id="returningBtn" partialSubmit="true" value="Hit if returning"
process="nameInfo" actionListener="#{player.loadReturning}" update="registrationForm">
<p:resetInput target="registrationForm" />
</p:commandButton>
我的最终提交:
<p:commandButton tabindex="0" id="SubmitButton" value="Register"
action="#{player.register}" update="regPage"/>