2013-01-15 47 views
2

JSF + Primefaces新手。 (使用JSF 2.1,Primefaces 3.4.2)在Primefaces JSF2.x中使用请求范围管理bean

我有一个内部panelGroup,它使用Primefaces commandButton来获取数据来填充各种表单组件的表单。 partialSubmit绕过尚未填充的字段的验证问题,以便运行良好。该页面的功能如预期,但现在我试图调整实施是'更清洁'。

我的问题与我用于表单使用的支持bean的JSF范围有关。使用会话范围,一切都很好,但在使用请求范围时没有。我的理解是,'final'提交(通过另一个p:commandButton组件)和这个提取按钮都是调用一个提交,以便对这两者的响应构成请求生命周期的完成。如果我是正确的,这也解释了为什么我得到(使用requst范围)如下:
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"/> 

回答

3

的partialSubmit得到周围行之有效尚未填充这样的字段的验证问题。

不,它不这样做。它仅将process属性中指定的输入字段发送到服务器,而不是全部当前表单的输入字段。这正是process属性,它告诉哪些输入需要处理(转换,验证和更新)。 partialSubmit="true"仅减少网络带宽和请求参数解析开销。另见PrimeFaces blog on the subject


如预期,但现在我试图调整,实现的是“清洁”的页面功能。我的问题与我用于表单使用的支持bean的JSF范围有关。使用会话范围,一切都很好,但在使用请求范围时没有。

会话范围确实是表单的错误范围。您需要请求或视图范围。如果您的表单在后续提交时需要在同一表单中记住某个状态,则需要查看范围。另请参见​​


java.lang.IllegalStateException:响应一直致力于

这是recognizeable作为固定在2.1钻嘴鱼科中的错误后不能创建一个会话。 8。如果无法升级,请参阅Adding <h:form> causes java.lang.IllegalStateException: Cannot create a session after the response has been committed以获得几种解决方法。


所以,我在我的理解是正确的具有使用中间提交(通过任何设计图案partialSubmit =“真”命令按钮(AJAX行为是默认启用)将要求至少使用会话的作用域确定为支持豆?理想的情况下,将1所要求的范围内做了具有实现的请求与导航水平的要求将允许这些中间提交机制。

至于说,你需要查看范围


或者我需要做一些额外的研究? (得到一个JSF 2.x书,而不是使用我的1.2副本?)

当然。不仅JSF2以来的视图范围是新的,而且与JSF1相比,JSF2中的许多其他事情的做法都不同(阅读:更优雅)。您可以在our JSF wiki page的底部找到几个链接到理智的JSF2资源。

+0

很多,非常感谢您的帮助。我的道歉,我应该更具体的partiaSubmit评论 - 实际上我使用进程属性限制提交/验证只有在nameInfo面板中的组件。好消息是我可以升级到2.1.8 - 如果不能,我还会检查你提供的链接。在Primefaces上做的很棒 - 我很感激它可用。 – Steve

+0

不客气。注意:我不是PrimeFaces开发者,我只是PrimeFaces用户。 OmniFaces是我的。 – BalusC

+0

我的错误 - 我在许多主题方面看到你处处处处。你提供的链接是宝贵的资源 - 我应该先利用它们。欣赏反馈。 – Steve

相关问题