c: forEach возвращает String вместо Object - PullRequest
3 голосов
/ 05 апреля 2011

У меня есть область действия Struts 1 Action, содержащая список пользовательских объектов POJO из моего приложения.Внутри действия я использую request.setAttribute ("myForm", myForm) для установки значения формы.Когда я попадаю на страницу JSP, я пытаюсь использовать цикл ac: forEach, чтобы перебрать элементы списка и распечатать свойство каждого элемента.Однако цикл c: forEach всегда выдает следующую ошибку:

javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${listObject.name}": Unable to find a value for "name" in object of class "java.lang.String" using operator "." (null)

Моя ActionForm имеет следующие объекты:

private List<MyCustomObjects> myList;
public List<MyCustomObjects> getMyList() { return myList; }
public void setMyList(List<MyCustomObjects> myList) { this.myList = myList; }

На странице JSP у меня есть следующий цикл:

<c:forEach var="listObject" items="myForm.myList">
    <c:out value="${listObject.name}" />
</c:forEach>

Кто-нибудь видит, что я сделал неправильно или почему это не работает?Спасибо!

1 Ответ

5 голосов
/ 05 апреля 2011

Вы должны обернуть выражение в ${}.

<c:forEach var="listObject" items="${myForm.myList}">
    <c:out value="${listObject.name}" />
</c:forEach>

В противном случае оно действительно обрабатывается как String, а именно с буквальным значением "myForm.myList".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...