使用JSF 2.0初始化带有页面加载参数的Backing Bean

Dan*_*iel 3 jsf jsf-2

我试图在页面加载时初始化一个支持bean.已经寻找了许多解决方案,但大多数都使用链接,按钮或根本没有参数.

场景: 客户登录到站点,然后应该在下一页上看到他的所有数据.

支持豆类:

  1. loginDetailsController - 支持登录过程.可以访问用户的密码和用户名.Login.xhtml的支持bean.

  2. customerController - 访问其余的用户详细信息.它还有一个customer_id字段.它是Home.xhtml的Backing bean.可以完全从customer_id初始化customerController.

在Home.xhtml上,可以通过这种方式获得customer_id:

 #{loginDetailsController.customer_id}
Run Code Online (Sandbox Code Playgroud)

有没有办法在页面加载时使用上面的值初始化customerController?

问候,

丹尼尔

Tar*_*pra 11

JSF 2.0具有preRender支持,应该可以解决您的问题.

JSF 2包含一个PreRenderViewEvent,它在视图参数处理完毕后但在渲染视图之前触发.可以使用标记注册预渲染视图侦听器,例如:

<f:metadata>
  <f:viewParam name="foo" value="#{bean.foo}"/>
  <f:event type="preRenderView" listener="#{bean.doSomething}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)