Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring: передача модели данных в JSP, подскажите, как быть 
:(
    Опции темы
schmidt
Дата 7.6.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Разрабатываю веб-ориентированное приложение. Использую Спринг. Теперь собственно сабж:

Сервлет, который получает список сообщений пользователя, идентификатор которого 1(это для теста):
Код

public class ShowMessagesController implements Controller {

    private MessageDAO messageDAO;
    private StudentDAO studentDAO;

    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        Collection messages = messageDAO.getMessages(1);
        Map<String, Object> model = new HashMap<String, Object>();
        Map<String, Object> messageModel = new HashMap<String, Object>();
        Iterator messageIterator = messages.iterator();
        while(messageIterator.hasNext()){
            Message message = (Message)messageIterator.next();
            Student sender = studentDAO.getStudent(message.getSenderId());
            messageModel.put("message", message);
            messageModel.put("sender", sender);
        }
        model.put("messageAmount", messages.size());
        model.put("messages", messageModel);
        return new ModelAndView("showMessagesProfessor","model", model);
    }
    
    public void setMessageDAO(MessageDAO messageDAO){
        this.messageDAO = messageDAO;
    }
    
    public void setStudentDAO(StudentDAO studentDAO){
        this.studentDAO = studentDAO;
    }
}



Теперь я пытаюсь это отобразить вьюхой showMessageProfessor.jsp:
Код

<c:forEach items="${model.messages}" var="messageModel">
            <td><img src="<c:out value="${messageModel.sender.photoPath}" />" width=10 height=20 /></td>
            <td><c:out value="${messageModel.sender.lastName}" /></td>
            <td><c:out value="${messageModel.message.text}" /></td>
</c:forEach>


В результате получаю експешин в браузере:
javax.el.PropertyNotFoundException: Property 'sender' not found on type java.util.HashMap$Entry

Подскажите как я могу передать в JSP модель данних, где у меня будут лежать сущности сообщения рядом с сущностьями студентами(отправителями) ?

Заранее благодарен!

PM MAIL   Вверх
garbuz
Дата 7.6.2009, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



У тебя тут с мапами какая-то путаница. Зачем тебе две мапы, попробуй обойтись одной, все станет яснее. Потом у тебя значения в цикле будет постоянно переписываться в карту под одними и теми же ключами. В foreach ты вместо коллекции получаешь мапу.
<c:forEach items="${model.messages}" var="messageModel">
[/quote]
PM MAIL   Вверх
Старовъръ
Дата 7.6.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Для того, чтоб передать несколько параметров с помощью ModelAndView, нужно пользовать его методы addObject(), addAllObjects().
PM MAIL WWW   Вверх
schmidt
Дата 8.6.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Спасибо, большое за помощь!
 Я сделал так: создал клас, в который поместил ссылки на нужные мне объекты, а потом уже екземпляры этого класа ложил в коллекцию, которую потом помещал в модель
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.