1

c:ifに基づいて、データブル内のデータ表示を制限することは可能です。

言いましょう

現在表示されている出力:

Startdate     end date   status    Edit

2012-02-02    2012-03-02 Waiting   edit

2012-02-03    2012-03-04 Approved   edit

期待される出力:

Startdate     end date   status    Edit

2012-02-02    2012-03-02 Waiting   edit

2012-02-03    2012-03-04 Approved  

ステータスが「待機中」の場合、編集リンクが表示されます。拒否または承認された場合、編集リンクは表示されません。

これは私のXhtmlファイルです。

           <h:form>
      <h:dataTable value="#{employeeleave}" var="e"
            styleClass="order-table"
            headerClass="order-table-header"
            rowClasses="order-table-odd-row,order-table-even-row"
            columnClasses="order-table-odd-column,order-table-even-column"
        >

        <h:column>
            <f:facet name="header">
                Start Date
            </f:facet>
                #{e.startDate}
        </h:column>

        <h:column>
            <f:facet name="header">
                End Date
            </f:facet>
                #{e.endDate}
        </h:column>

        <h:column>
            <f:facet name="header">
                Reason
            </f:facet>
                #{e.reason}
        </h:column>

        <h:column>
            <f:facet name="header">
                Status
            </f:facet>
                #{e.status}
        </h:column>
            <h:column>
        <f:facet name="header">
            Edit
        </f:facet>
        <c:if test="${e.status == 'Waiting'}">
        <p:commandLink value="Edit" action="editLeave" id="editleave" >
        <f:setPropertyActionListener value="#{e}" target="#{employeeDetails.employeeLeaveSelected}" />
        </p:commandLink>
        </c:if>
        </h:column>
    </h:dataTable>  
    </h:form>
4

1 に答える 1

2

JSTLタグはそのようには機能しません。これらは、予想されるビューのレンダリング時間ではなく、ビューのビルド時間中に実行されます。ビューのビルド時には使用できないため、特定の場合は常にに解決さ${e}ますnull

rendered代わりに、JSFコンポーネントの属性を使用する必要があります。

交換

<c:if test="${e.status == 'Waiting'}">
    <p:commandLink value="Edit" action="editLeave" id="editleave" >
        <f:setPropertyActionListener value="#{e}" target="#{employeeDetails.employeeLeaveSelected}" />
    </p:commandLink>
</c:if>

<p:commandLink value="Edit" action="editLeave" id="editleave" rendered="#{e.status == 'Waiting'}">
    <f:setPropertyActionListener value="#{e}" target="#{employeeDetails.employeeLeaveSelected}" />
</p:commandLink>

参照:

于 2012-07-18T15:27:20.200 に答える