jstl / jsp - итерация по вектору
Вопрос
У меня есть вектор bean-компонентов, которые содержат информацию, которую я хочу отобразить на моей странице jsp. В настоящее время я просто использую стандартные выражения Java для отображения этого, я хочу изучить использование jstl для разделения проблем. Возможно ли это и как? Я гуглил, но не могу ничего найти.
Решение
Я думаю, что вы ищете < тег c: foreach > .
например, печать значения свойства myInt в экземплярах MyClass (определено ниже):
<c:foreach items="${vectors name}" var="pos" >
<!-- print the value of myInt for each position of the array.
Method getMyInt() must exist in pos object.-->
<c:out value="${pos.myInt}"/>
<!-- print the value of myInt for each composed instance.
Method getRelatedInstance() must exist in pos object. -->
<c:out value="${pos.relatedInstance.myInt}"/>
</c:foreach>
где vector name - это имя вектора, например, после выполнения
Предположим, у вас есть класс myClass.
public class MyClass{
private MyClass relatedInstance;
//some members and methods
public int getMyInt(){
//return something
}
public MyClass getRelatedInstance(){
return this.relatedInstance;
}
List<myClass> my_vector = getFilledList();
request.setAttribute("vectors name",my_vector)
Другие советы
Чтобы потратить на пример Тома, вот что-то более конкретное:
<c:foreach items="${myList}" var="myItem">
<c:out value="${myItem.someProperty}"/>
</c:foreach>
Где " myList " атрибут запроса, содержащий ваш вектор.
Распространенная ошибка - забыть о $ {} около $ {myList} - если вы сделаете это, JSTL не выдаст ошибку, он просто сгенерирует для вас список с одним элементом, строкой Quot; MyList <> Quot;!.