我有一个包含参数 bean 的包含文件,我将其用于两个具体的java BeanA 和 BeanB 类。
BeanB 类有其他方法,因此我检查render属性以不访问不可用的方法:
查看:
<ui:include src="/inc_bean.xhtml">
<ui:param name="bean" value="#{beanB}"/>
</ui:include>
包含var bean
的文件
<p:tabView>
<p:tab>
<!-- content shall only be rendered if instance of BeanB -->
<h:panelGroup rendered="#{bean.class.simpleName eq 'BeanB'}">
<h:form>
<h:inputText value="#{bean.propertyB}"/>
</h:form>
</h:panelGroup>
</p:tab>
</p:tabView>
当我在class BeanA 中使用include时,我在glassfish 4.1.1和JSF mojarra 2.2.9中遇到以下错误:
类'BeanA'没有属性'propertyB'。
解决方法:
将内部内容包装在新的强类型( BeanB )组合中。
包含文件:
<p:tabView>
<p:tab>
<comp:beanB bean="#{bean}" rendered="#{bean.class.simpleName eq 'BeanB'}"/>
</p:tab>
</p:tabView>