在显示多个页面的页面和共享bean之前访问业务逻辑

时间:2012-02-09 19:47:12

标签: jsf

我有一个jsf 1.2应用程序,我需要显示一个有支持bean的页面(jsp)。我看到帮助的大多数示例显示用户ot编辑的空白jsp。在我的情况下,我需要在jsp加载之前从DB获取一些数据,如何实现这一点?

我在一个支持bean方法上尝试了@postconstruct但是如果我与多个JSP共享这个bean,它正在初始化所有页面的信息,我需要不同页面的不同数据,每个页面应该在从JSP显示之前从db中读取一些数据

我来自Struts背景,我将调用Action的URL,它将调用Business逻辑来获取数据,然后我将指向JSP。为了使用JSF来实现这一点,看起来并不是那么简单。

1 个答案:

答案 0 :(得分:2)

  

我在一个支持bean方法上尝试了@postconstruct但是如果我与多个JSP共享这个bean,它正在初始化所有页面的信息,我需要不同页面的不同数据,每个页面应该从db读取一些数据在JSP中显示。

页面(视图)应该有自己的请求/视图作用域支持bean,在别处共享。那应该解决你的“问题”(这实际上只是一个设计问题)。不要将单个会话作用域bean用于多个视图。这是对会话范围的错误使用。


  

我来自Struts背景,我将调用Action的URL,它将调用Business逻辑来获取数据,然后我将指向JSP。为了使用JSF来实现这一点,似乎并不是那么简单。

JSF和Struts非常不同。 JSF是一个基于组件的MVC框架,而Struts是一个基于动作的MVC框架。在考虑Struts操作类时,不应该设计JSF支持bean类。通过一些不错的JSF教程应该让你走上正轨。有关概述,请参阅our JSF wiki page的底部。

请注意,JSF 1.2已完全过时。 JSF 2.0已经在2年前发布了。如果这是一个新的应用程序或只是爱好,我建议忘记JSF 1.2并继续使用JSF 2.0。