2016-01-27 3 views
1

(я использую JSTL версии 1.2 и Java 6)JSP (JSTL 1.2) - установить переменную из списка Java

Я работаю с некоторыми унаследованного кода, который имеет определенную логику в своих JSP-страниц, что в стороне я теперь нужно перебрать список данных, сопоставить что-то, а затем установить переменную в значение списка (в этом случае ArrayList). Причина, по которой мне нужно сделать это, - это затем перебрать список, который я нашел позже в файле jsp.

Вот фрагмент кода, у меня до сих пор, но не работает:

<c:set var="listOfChildData" value="${[]}" scope="page"/> 

    <c:forEach items="${otherListOfData}" var="data"> 

    <c:if test="${data.id == dataToMatchOn.id}"> 

     <c:catch var="exception">${data.children}</c:catch> 
     <c:if test="${empty exception}"> 

     <c:set var="listOfChildData" value="${data.children.toArray()}" scope="page"/> 

     </c:if> 
    </c:if> 
    </c:forEach> 

мне нужно вручную пройти через каждый элемент в списке и добавить его в listOfChildData ли?

Чтение, все примеры, которые я нашел, заключались в создании переменной массива с нуля, а не с другой переменной.

Если это связано с использованием сценариев, могу ли я сделать это в цикле forEach?


Обновленный, чтобы включать обработку исключений, если data.children имеет нулевое значение, пусто и т.д.

ответ

1

Вам не нужно, чтобы скопировать список. Все, что вам нужно установить, это selectedItem, а затем вы можете работать с этим:

<c:forEach items="${otherListOfData}" var="data"> 
    <c:if test="${data.id == dataToMatchOn.id}"> 
     <c:set var="selectedItem" value="${data}/> 
    </c:if> 
</c:forEach> 

<p>From here on I can work with the selected item:</p> 

${selectedItem.children} 
+0

Да, вы правы, и теперь это очевидно. Он по-прежнему не отвечает на вопрос о том, как установить значение переменной в список Java. Но поскольку он решил мою проблему, я принял ваш ответ. – Jeremy

Смежные вопросы