2

我有<t:datatable>里面的哪些<c:forEach>项目<c:forEach>有列表。(我从后端 bean 检查)。

<t:dataTable id="insuranceListTable" rowIndexVar="row" width="100%"
styleClass="table" cellspacing="0" border="0"
value="#{insuranceBackingBean.allInsurancesByPatientId}"
var="insuranceBean">
<h:column>
<f:facet name="header">
    <f:verbatim>Drug Formulary</f:verbatim>
</f:facet>
<h:panelGroup id="formularyInformation">
    <h:panelGroup rendered="#{!empty insuranceBean.response4CheckDrugFormulary.reactionList[0].warningList}">
        <c:forEach items="${insuranceBean.response4CheckDrugFormulary.reactionList[0].warningList}" var="warning">
            <b><span title="${warning.warningText}"><c:out value=" [${warning.warningCode}] "></c:out></span></b>
        </c:forEach>
    </h:panelGroup>
    &nbsp;&nbsp;
    <a4j:commandLink onclick="setVisibleAlternativeListGrid();" rendered="#{!empty insuranceBean.response4CheckDrugFormulary.reactionList[0].drugAlternativeList.alternativeList}">
        <a href="#" id="alternative">Alternative [<h:outputText value="#{insuranceBean.response4CheckDrugFormulary.reactionList[0].drugAlternativeList.count}"></h:outputText>]</a> &nbsp;
    </a4j:commandLink>
    <a4j:commandLink onclick="setVisibleAlternativeListGrid();" rendered="#{!empty insuranceBean.response4CheckDrugFormulary.reactionList[0].coPayList}">
        &nbsp;<a href="#" id="coPay">Co-Pay</a>
    </a4j:commandLink>
</h:panelGroup> 
</h:column>
</t:dataTable>

下面不反映任何事情... :(

<c:forEach items="${insuranceBean.response4CheckDrugFormulary.reactionList[0].warningList}" var="warning">
        <b><span title="${warning.warningText}"><c:out value=" [${warning.warningCode}] "></c:out></span></b>
    </c:forEach>
4

1 回答 1

3

JSTL 标记在视图构建期间运行,其中 JSF 组件树是基于视图源代码生成的。JSF 组件在视图呈现期间运行,其中 HTML 输出基于 JSF 组件树生成。换句话说,JSTL 标记和 JSF 组件不会像您对编码所期望的那样同步运行。

在您的特定情况下,在<c:forEach>运行时,${insuranceBean}将始终评估为null,因为它已被定义为当时未运行var的 JSF组件。<t:dataTable>

你需要<t:dataList>而不是<c:forEach>.

<t:dataList value="#{insuranceBean.response4CheckDrugFormulary.reactionList[0].warningList}" var="warning">
    <b><span title="#{warning.warningText}"><h:outputText value=" [#{warning.warningCode}] " /></span></b>
</t:dataList>

也可以看看:

于 2012-05-02T17:06:57.667 回答