JSF2在页面加载时将属性传递给支持bean

时间:2012-10-30 18:30:29

标签: jsf jsf-2 pageload backing-beans postconstruct

我有两个不同的JSF2页面,共享辅助bean。如何将参数从页面传递到辅助bean(在页面加载 - 使用@PostConstruct的方法),以便它知道当前正在使用哪个页面。

我知道可以使用<f:event> preRenderView(如this),但它需要一个方法以及辅助bean中的字段。这可能与f:attribute或f:param这样,在支持bean中没有任何额外的方法吗?

1 个答案:

答案 0 :(得分:1)

如果bean是请求作用域,只需通过#{view.viewId}将视图ID作为托管属性。

@ManagedProperty("#{view.viewId}")
private String viewId; // +setter

如果bean是视图范围的,只需通过UIViewRoot#viewId()直接获取视图ID。

private String viewId;

@PostConstruct
public void init() {
    viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
    // ...
}