我有以下自定义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"/>
提前致谢
答案 0 :(得分:4)
基本上,在幕后,JSF创建组件并设置如下属性:
MyPanel myPanel = new MyPanel();
myPanel.getAttributes().put("panelName", "TEST123");
它应该说明在构造之前不可能设置组件属性。但是,您试图在构造函数中访问它!
您应该使用其中实际需要它的标准UIComponent
方法之一来访问它。例如。 encodeBegin()
左右。