首页 > 解决方案 > 是否可以覆盖变量?

问题描述

我试图根据它的 id 创建指向对象的链接。为此,我创建了与属性 ID 进行比较的 ID 列表。

我尝试将属性 ID 添加到变量,然后进行比较,但在 foreach 中,变量始终显示为相同的值。

                <s:if test="%{#attr.documentRow.buyRequest != null }">
                    <c:forEach items="${liveBuyRequestsId}" var="item">
                        <c:set var="liveBuyId" value="${attr.documentRow.buyRequest.id}"/>
                        <s:if test="%{attr.documentRow.buyRequest.id eq item}">
                            <s:url var="buyRequestUrl" action="buy-request-view-view" includeParams="none">
                                <s:param name="buyRequestId">${attr.documentRow.buyRequest.id}</s:param>
                                <s:param name="previousAction">${attr.buyRequestPreviousAction}</s:param>
                            </s:url>
                        </s:if>
                            <s:url var="buyRequestUrl" action="buy-request-view-history" includeParams="none">
                                <s:param name="buyRequestId">${attr.documentRow.buyRequest.id}</s:param>
                                <s:param name="changeId">${attr.documentRow.buyRequest.changeId}</s:param>
                                <s:param name="previousAction">${attr.buyRequestPreviousAction}</s:param>
                            </s:url>
                        <s:a href="%{buyRequestUrl}">
                            ${liveBuyRequestsId} (${item} by ${attr.documentRow.buyRequest.domainHolder})
                        </s:a>
                    </c:forEach>
                </s:if>
            </display:column>

我希望它根据这些语句创建 url,但变量“liveBuyId”始终具有匹配的第一条记录的值

attr.documentRow.buyRequest != null

标签: jspstruts2jstloverwrite

解决方案


使用item哪个是当前/最后一个值

<c:set var="liveBuyId" value="${item}"/>

推荐阅读