我有两个不同的JSF2页面,共享辅助bean。如何将参数从页面传递到辅助bean(在页面加载 - 使用@PostConstruct的方法),以便它知道当前正在使用哪个页面。
我知道可以使用<f:event>
preRenderView
(如this),但它需要一个方法以及辅助bean中的字段。这可能与f:attribute或f:param这样,在支持bean中没有任何额外的方法吗?
答案 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();
// ...
}