JSF2 SessionBean 在页面访问之前初始化

发布于 2024-11-03 13:19:13 字数 69 浏览 0 评论 0原文

我们使用 JSF2 和 Tomcat6。在用户访问第一页之前,我们需要使用后端值初始化会话 bean。我可以知道该怎么做吗?

We are using JSF2 and Tomcat6. We need to initialize a session bean with backend values before the user access the first page. May I know how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤城病女 2024-11-10 13:19:13

如果您只想从页面访问通用的会话范围数据,您可以

  • 仅为该数据编写一个会话 Bean,
  • 在需要访问该数据的所有页面中使用该会话 Bean;一个页面不需要只使用一个 bean,您可以对大多数页面特定数据使用某个 bean,对公共数据使用一个 bean,
  • 在需要访问的所有 bean 中使用该会话 bean 作为“托管属性”(jsf2 中的 @ManagedProperty 注释)对于这个通用数据

If you just want to access common, session scoped data, from a page, you could

  • write a session bean just for that data
  • use that session bean in all pages that need access to this data; a page doesn't need to use only one bean, you could use some bean for most page specific data and one for common data
  • use that session bean as a "managed property" (@ManagedProperty annotation in jsf2) in all beans that require access to this common data
终陌 2024-11-10 13:19:13

你问的严格来说是不可能的。一旦用户发出第一个请求,就会创建会话。通常,您不能提前为从未请求服务器上任何页面的用户创建会话。

从页面引用的任何会话作用域 bean 将在第一次调用该页面期间初始化,并且仅在第一次调用期间初始化。这是你能得到的最好的。

如果您实际上指的是 SessionBean 而不是会话范围的托管 bean,那么情况会有所不同。由于您没有在问题中使用 EJB 标记,我认为是后者。)

What you ask is strictly spoken not possible. A session is created exactly once a user does his first request. You can in general not create sessions in advance for users that have never requested any page on your server.

Any session scoped bean that is referenced from a page will be initialized during the first call to that page, and only during that first call. This is the best you can get.

(If you actually mean a SessionBean and not a session scoped managed bean, then things are a little different. As you haven't used the EJB tag on your question I suppose it's the latter.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文