如何在display标签中声明UID的运行时值?

时间:2012-07-23 13:23:10

标签: jsp jsp-tags displaytag

我在三个不同的模块中使用相同的jsp。因为这三个模块共包含近10到12列。所以我在三个模块中使用相同的jsp。     我的问题是在display:table的内部使用“KeepStatus = true”。每个模块都有唯一的UID名称(由于KeepStatus属性),所以我声明了运行时值。它工作正常,但在一个模块中,值呈现在表的顶部。其他模块没有问题。

文件名: - ratingElementInstances_All.jsp

<display:table name="${disputeForm.ratingInstanceList}" uid="${diplayTableUID}" sort="list" keepStatus="true"
    requestURI="${diplayTableReqURI}" excludedParams="method" decorator="com.ford.mpl.superg.decorator.DisputeRatingInstanceTableDecorator">
    <%@include file="/jsp/include/displaytag.jsp"%>
    <ui:resultsPerPage />
    <logic:notEqual name="disableActions" value="Y">
        <display:column property="actions" title="${Actions}" sortable="false" class="textAlignC inlineMenuTriggerWrapper" />
        <display:column property="checkbox" title="${disputeInstanceHeaderCheckbox}" sortable="false" />
    </logic:notEqual>
    <c:if test="${diplayTableUID.disputeNumber != null}">
        <display:column property="disputeNumber" title="${disputeNumberForLabel}" sortable="true"/>
    </c:if>
    <display:column property="disputeAnalystCDSID" title="${WQAnalyst}" sortable="true"/>
    <display:column title="${Status}" sortable="true">
        <c:if test="${diplayTableUID.disputeStatus != null}">
            <bean:message bundle="i18n" key="${diplayTableUID.disputeStatus}" />
        </c:if>
    </display:column>               
    <display:column property="disputeLastUpdatedCSDID" title="${LastUpdatedCDSID}" sortable="true"/>
    <display:column property="disputeLastUpdateDate" title="${LastUpdatedDate}" sortable="true"/>
</display:table>

第一个Jsp页面:

<bean:define id="diplayTableUID" name="processRatingDisputeForm"/> 
<%@include  file="ratingElementInstances_All.jsp"%>

第二个Jsp页面:

<bean:define id="diplayTableUID" name="returnPointsRatingDisputeForm"/> 
<%@include  file="ratingElementInstances_All.jsp"%>

第三个Jsp页面:

<bean:define id="diplayTableUID" name="submitRatingDisputeForm"/>
<%@include  file="ratingElementInstances_All.jsp"%>

为什么我在bean标签中使用整个表单意味着什么。我需要一些值才能通过对象。例如,

<c:if test="${diplayTableUID.disputeNumber != null}">

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望能够访问当前的“行”对象,但由于它具有动态ID,因此您会被卡住。以下应该有效:

<c:if test="${pageScope[diplayTableUID].disputeNumber != null}">

您还可以在开始标记之后定义别名,并在以下后使用此别名:

<c:set var="currentRow" value="${pageScope[diplayTableUID]"/>
...
<c:if test="${currentRow.disputeNumber != null}">

答案 1 :(得分:0)

使用'htmlId'作为客户端的表ID。