2015-03-31 2 views
0

Я определяю одну переменную в родительском JSP и получаю файл тега из этого 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, чтобы сохранить обновленную строку.

Теперь, если я попытаюсь получить removeURL в Parent JSP, он напечатает то же значение, что и раньше, в родительском jsp. Обновленное значение вычисления (в файле тега) не отражается в родительском JSP.

Я смущаюсь с объемом, независимо от того, будет ли он иметь переменную removeURL согласованной или нет. Пожалуйста, помогите мне обновить значение в Parent JSP.

ответ

0

Пожалуйста, смотрите мой ответ на ваш другой вопрос здесь: How to pass Object using jsp:include param tag into another jsp

Я думаю, что не сделает вашу жизнь намного проще и сделать этот вопрос больше не актуален. Если вы согласитесь, что другой метод лучше, я бы закрыл этот вопрос.

0

Вы можете указать область переменной с помощью атрибута scope

`<c:set var="removeURL" value="${fn:replace(queryParams, replaceParams, '')}" scope="request" />` 

Вы можете также использовать page, session или application