2015-04-21 2 views
0

Я пытаюсь отобразить список элементов, используя этот JSP-код:Переходя HashMap к Jsp

    <c:forEach items="${themesContentMap}" var="entry"> 
        <tr> 
        <td><input type="checkbox" value="${entry.key.getId()}"checked></td> 
        <td>${entry.key.getLibelle()}</td> 
        <td>${entry.value.getNom()}</td> 
        </tr> 
        </c:forEach> 

Fed кодом Java:

HashMap<ThemeBean, CoursBean> themeContentMap = new HashMap<ThemeBean, CoursBean>(); 
    for (ThemeBean theme : themeBeans) { 
     themeContentMap.put(theme, coursDAO.getCours(theme.getCours())); 
    } 
    LOG.debug("Found matching: " + themeContentMap); 
    request.setAttribute("themesContentMap", themeContentMap); 
    resp.sendRedirect(LIST_THEMES); 

Однако я не получаю ничего моя веб-страница или любая ошибка в журналах (отладка отображает правильную информацию).

Обратите внимание, что я полный новичок с сервлетами и JSP, поэтому я мог бы пропустить что-то очевидное.

ответ

2
resp.sendRedirect(LIST_THEMES); 

создает новый запрос, и, следовательно, предыдущие атрибуты запроса теряются. Здесь вы должны использовать RequestDispatcher.

RequestDispatcher view = request.getRequestDispatcher("yourJspName"); 
view.forward(request, response); 

Таким образом, вы сможете получить доступ к своим атрибутам запроса в jsp. Вы должны понять difference between a request dispatcher and redirect

Это как диспетчер запрос работы: enter image description here

Это как response.sendRedirect() работы enter image description here

This tutorial will help

+0

Также есть '' $ {entry.key.getId()} "' valid EL? Если я правильно помню (и мои знания могут быть немного устаревшими), 'getID()' недействителен в JSP EL. Простой '.id' должен быть в порядке. – Pshemo

+0

@Pshemo, да, вы должны получить доступ на основе свойств. –

3

sendRedirect() отправляет заголовок обратно в браузер (302 HTTP s tatus code), И также содержит имя перенаправляемого ресурса. Таким образом, это будет новый запрос к ресурсу из браузера. Вы должны переслать запрос

requestDispatcher.forward(request, response); 

Jsp принимает запрос и есть атрибуты и в дальнейшем обрабатывать.

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