我试图将Tab组件作为UIComponent传递给bean方法(针对我正在开发的某些权限问题),但是我正在获取TabView的实例而不是Tab。
我以Tab为例,但我尝试在p:outputLabel中调用相同的方法,并且收到UIComponent PanelGrid实例。
是否可以或当我将其作为标签使用时也需要传递ID?
我正在运行Primefaces 5.3。
<p:tabView id="myTabView">
<p:tab id="tabOne" rendered="{myController.isUserHasView(component)}">
...
</p:tab>
</p:tabView>
//Bean Method
public boolean isUserHasView(UIComponent component) {
System.out.println(component);
return false;
}
我希望将Tab作为UIComponent获取,但是我将获得其所有子级的TabView。
答案 0 :(得分:0)
tab不是UIComponent
(does not have its own renderer),因此'component'变量不是指向选项卡,而是指向其父级tabview which is the real component and renders the tab。但是即使有可能,每次用户打开页面时都会创建一个新实例,因此通过“实例”进行检查是不合逻辑的(除非您希望从组件中检索ID)。因此,由于无论如何都应该使用类似id的名称,因此显式使用id是一件好事(至少是我使用的东西)。