问题描述
||
这个问题已经在这里有了答案:
解决方法
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>
, 您的豆子的范围是多少?无论如何,标有“ 1”的方法
创建bean时,注释将被调用一次。
@ManagedBean
@ViewScoped
public class LoginDetailsController() {
private String customer_id;
// getters and setters for customer_id
@PostConstruct
public void init() {
this.customer_id = fetch_the_value_from_somewhere;
}
}
如果希望页面始终执行此方法,则无论是否已创建bean,都应按Tarun正确建议使用PreRenderViewEvent
。但是请注意,每次呈现页面时都会触发此事件;即使用户刷新页面也是如此。
如果要使用customerController
中的ѭ4from中的值,可以按如下方式注入
@ManagedBean
@ViewScoped
public class CustomerController() {
@ManagedProperty(value=\"#{loginDetailsController}\")
private LoginDetailsController loginDetailsController;
private String customer_id;
// getters and setters for customer_id
@PostConstruct
public void init() {
this.customer_id = loginDetailsController.getCustomer_id();
}
, 这是我解决的方法:
由于LoginDetailsController是会话作用域的-customer_id总是被初始化。
所以-我加了
@ManagedProperty(value=\"#{loginDetailsController.customer_id}\")
private String customer_id;
另外-customer_id的获取器和设置器。
正如Nikhil所说的那样,在LoginDetailsController上进行了一些更改。
然后,可以在Home.xhtml上使用ѭ8和其余的customerController初始化的customerController元素。
谢谢你们!