【发布时间】:2015-06-04 22:03:57
【问题描述】:
我在 Parent JSP 中定义一个变量并从该 jsp 访问标记文件,其中相同的变量会根据某些条件发生变化。
这是我的代码..
父 JSP:
<c:set var="replaceParams" value=":${attribute.name}:${value.name}" />
<c:set var="removeURL" value="${fn:replace(queryParams, replaceParams, '')}" /> <!-- Suppose value is A -->
<%@ taglib prefix="cms2" tagdir="/WEB-INF/tags/spine/surgery"%>
<c:forEach items="${attributeDTOList}" var="attribute" varStatus="status">
<cms2:attributeSubFeatureRemove attribute="${attribute}" />
</c:forEach>
<!-- Print removeURL showing "A". It has to show "AB" -->
attributeSubFeatureRemove.tag--
<%@ attribute name="attribute" required="true" type="com.medtronic.b2b.core.dto.HCCB2BClassificationAttributeDTO" %>
<%@ attribute name="removeURL" required="true" type="java.lang.String" %>
<c:forEach items="${attribute.subFeatures}" var="subAttribute">
<c:forEach items="${subAttribute.attributeValues}" var="subValue">
<c:if test="${ subValue.preSelectionRequired}">
<c:set var="replaceParams" value=":${subAttribute.name}:${subValue.name}" />
<c:set var="removeURL" value="${fn:replace(removeURL, replaceParams, '')}" />
</c:if>
</c:forEach>
</c:forEach>
<!-- Now Suppose removeURL value changed to AB-->
在上面的代码中,父 JSP 具有字符串类型的变量 removeURL。我在标签文件中发送这个 removeURL 变量。标记文件将更改相同的 removeURL 变量以保存更新的字符串。
现在如果我尝试在父 JSP 中获取 removeURL,它会在父 jsp 中打印与之前相同的值。更新的计算值(在标记文件中)未反映在父 JSP 中。
我对范围是否会使 removeURL 变量保持一致感到困惑。请帮助我获取父 JSP 中的更新值。
【问题讨论】: