3

我正在使用 JSF 1.2 在 WAS 7 之上将 portlet 部署到 WebSphere Portal Server 6.1 的项目上工作。由于各种合同/政治原因,我们坚持使用 JSF 1.2。

然而。我们在整个应用程序中使用 Spring bean 来获取 AoP 日志记录。

我们不能使用 JSF 2.0 有点烦人。特别是,视图范围非常适合我们的应用程序。这将是一个使用率很高的站点,并且将所有页面 bean 保留在会话范围内是浪费的,我相信稍后会引起我们非功能测试团队的注意。

我突然想到,我可以通过使用 Spring 的自定义范围和自定义 JSF 组件来模拟 View Scope,该组件仅维护由 Spring 范围设置的活动 bean 的映射并将此组件附加到我们的页面上。与可以在此映射中找到 bean 的自定义变量解析器一起,我们应该能够模拟视图范围

(我们的旅程只有四页,但每一页都有几个回传到同一页)

这种方法听起来如何?我想确保在向我的项目同事介绍此内容并开始撕开我们已经编写的 bean 代码之前,我不会以某种方式自取其辱。

4

1 回答 1

4

不确定 Spring,但对于 JSF 1.2 托管 bean,Tomahawk <t:saveState>是让 JSF 1.2 请求范围 bean 的行为(几乎)与 JSF 2.0 视图范围 bean 完全相同的方式。差不多,因为在 JSF 2.x 中,视图的销毁和状态保存的效率更高一些。但效果最终是一样的。

您需要做的就是在视图中的其他位置通过该标记引用 bean:

<t:saveState value="#{bean}" />
于 2012-05-25T20:07:05.617 回答