在include中未评估的呈现属性

时间:2016-08-15 15:39:54

标签: jsf jsf-2 uiinclude rendered-attribute

我有一个包含参数 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>

0 个答案:

没有答案