0

我有一个包含参数bean的包含文件,用于两个具体的 java BeanABeanB类。

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>

当我将包含与BeanA类一起使用时,在 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>
4

0 回答 0