【问题标题】:JSF2 pass an attribute to backing bean on page loadJSF2 在页面加载时将属性传递给支持 bean
【发布时间】:2012-10-30 18:30:28
【问题描述】:

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

我知道可以使用<f:event>preRenderView(像this),但是它需要一个方法以及支持bean 中的一个字段。是否可以使用 f:attribute 或 f:param 之类的东西,而在 backing bean 中没有任何额外的方法?

【问题讨论】:

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


【解决方案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();
    // ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-24
    • 2011-10-13
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2010-10-28
    • 2013-12-30
    • 1970-01-01
    相关资源
    最近更新 更多