如何在JSF页面中访问非托管bean类?

时间:2010-03-30 16:46:19

标签: jsf facelets

我正在使用facelets。我有一节课:

public class foo{
    public static String foofookoo() {
        return "tookoofoopoo";
    }
}

如何在我的JSF页面上访问它,因为这是一个简单的POJO而不是托管bean?

1 个答案:

答案 0 :(得分:4)

假设它真的一个POJO并且您的代码示例简直是坏的;很好地访问它的唯一方法是使它成为现有托管bean的属性:

@ManagedBean
public class Bean {
    private Pojo pojo;

    public Bean() {
        pojo = new Pojo(); // Create/load it somehow.
    }

    public Pojo getPojo() {
        return pojo;
    }
}

然后在与托管bean关联的JSF页面中执行:

<h:outputText value="#{bean.pojo.property}" />

大致翻译为pageContext.findAttribute("bean").getPojo().getProperty()

但是,如果另一方面它实际上是一个带有静态非getter方法的实用程序类,那么最好的办法是将它包装在EL函数中。您可以在this answer中找到以Facelets为目标的示例。