无法从辅助bean获取自定义组件属性

时间:2015-05-22 19:13:17

标签: jsf primefaces custom-component

我有以下自定义PrimeFaces面板

在页面

<x:myPanel panelName="TEST123" />

和班级

    @FacesComponent(namespace="test",tagName="myPanel", createTag=true)
    public class MyPanel extends Panel {

    public MyPanel() {
           panelName = (String)getAttributes().get("panelName");
    }
}

为什么从类本身获取属性不起作用

getAttributes().get("panelName");  >> it returns null

我甚至尝试使用以下内容,它也在类中返回null:

<f:attribute name="panelName" value="TEST123"/>

提前致谢

1 个答案:

答案 0 :(得分:4)

基本上,在幕后,JSF创建组件并设置如下属性:

MyPanel myPanel = new MyPanel();
myPanel.getAttributes().put("panelName", "TEST123");

它应该说明在构造之前不可能设置组件属性。但是,您试图在构造函数中访问它!

您应该使用其中实际需要它的标准UIComponent方法之一来访问它。例如。 encodeBegin()左右。