как получить доступ к списку массивов в JSP, если я передам бин - PullRequest
5 голосов
/ 05 марта 2011

Я новичок в JSTL. Как я могу использовать JSTL <c:foreach> внутри jsp, если я пройду ниже образца bean

class B{
    private String value="";
    private ArrayList arrayVals;
    public String getvalue(){
        return value;
    }
    public String getarrayVals(){
        return arrayVals;
    }
}

Я передам только Бин "B". Я попытался, как показано ниже, но JSP не скомпилирован. Пожалуйста, помогите мне.

<c:forEach items="${B.getarrayVals}" var="book"> 
    <c:out value="{book.title}"/> 
</c:forEach>

1 Ответ

10 голосов
/ 05 марта 2011

Прежде всего, getarrayVals() должно быть написано getArrayVals(), и оно должно возвращать список, а не строку, очевидно.

Теперь предположим, что сервлет или действие устанавливает атрибут "b" типаB, как это:

request.setAttribute("b", theBInstance);

, а затем перенаправляет в JSP, вы можете получить доступ к списку в атрибуте "b", как это:

${b.arrayVals}

Вы должны обратиться к экземпляру Bпо имени атрибута запроса, а не по имени класса.Если вы назовете атрибут foo, тогда используйте use ${foo.arrayVals}.Это просто выведет на toString списка.Если вы хотите получить элемент по индексу 3 списка, вы можете использовать

${b.arrayVals[3]}

И если вы хотите перебрать элементы списка, используйте конструкцию c: forEach:

<c:forEach items="${b.arrayVals}" var="element">
    The element value is ${element} <br/>
</c:forEach>
...