使用Spring bean在JSF 1.2中模拟jsf 2.0视图范围

时间:2012-05-25 19:59:13

标签: java spring jsf javabeans

我正在使用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代码。

1 个答案:

答案 0 :(得分:3)

不确定Spring,但对于JSF 1.2托管bean,Tomahawk's <t:saveState>是让JSF 1.2请求作用域bean的行为(几乎)与JSF 2.0视图作用域bean完全相同的方法。几乎是因为在JSF 2.x中破坏视图和保存状态更有效。但效果最终是一样的。

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

<t:saveState value="#{bean}" />