我在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,它是String Type。我在标记文件中发送此removeURL变量。标记文件将更改相同的removeURL变量以保存更新的String。
现在如果我将尝试在父JSP中获取removeURL,它将在父jsp中打印与之前相同的值。更新后的计算值(在标记文件中)未反映在父JSP中。
我对范围是否会使removeURL变量保持一致感到困惑。请帮助我在Parent JSP中获取更新值。
答案 0 :(得分:0)
请在此处查看我对您的其他问题的回复:How to pass Object using jsp:include param tag into another jsp
我认为这将使您的生活更轻松,并使这个问题不再相关。如果你同意其他技术更好,我会关闭这个问题。
答案 1 :(得分:0)
您可以使用scope
属性
`<c:set var="removeURL" value="${fn:replace(queryParams, replaceParams, '')}" scope="request" />`
您还可以使用page
,session
或application