jsf - 如何访问 JSF 页面中的非托管 bean 类?

标签 jsf facelets

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

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

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

最佳答案

假设它确实是一个 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 的示例。 .

关于jsf - 如何访问 JSF 页面中的非托管 bean 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2546980/

相关文章:

java - 将 Richfaces 4 与 OpenFaces 3 相结合

jsf - <attribute> 无法解析为 <bean> 的成员

java - 如何从 JSF 2.0 Facelets 模板调用 List.size()?

jsf - 执行托管 bean 操作方法后显示 alert()

jsf - 动态用户界面 :include in JSF

javascript - Jsf 命令按钮调用 javascript 函数然后刷新整个页面

每个属性的 JSF 验证

jsf - JSF/Seam/RichFaces 中有 “server-side comments” 吗?

java - JSF 2.0(Primefaces) - 复合组件不可访问,如果通过 ID 引用

JSF 2 <f :selectItems> not recognizing itemLabel and itemValue attributes