2014-06-14 2 views
3

Я поставил объект в сессии:JSTL получить объект из сессии

session.setAttribute("userDTO", currentUser); 

И я пытаюсь отобразить его с помощью EL. Мне удалось с помощью scriplets (доказать, что объект задан в сеансе).

код в JSP:

<body> 
    <% UserDTO userdto=(UserDTO)session.getAttribute("userDTO"); %> 
    <%=userdto.getUsername() %> 
    Username from session:<c:out value="${sessionScope.userDTO.username }"/> 
</body> 

В scriplets отображать имя пользователя, но ничего не отображается после "Имя пользователя из сессии:". Зачем?

UserDTO класс:

public class UserDTO { 
    private int ID; 
    private String email; 
    private boolean emailConfirmed; 
    private String username; 
    private String role; 
    public int getID() { 
     return ID; 
    } 
    public void setID(int iD) { 
     ID = iD; 
    } 
    public boolean isEmailConfirmed() { 
     return emailConfirmed; 
    } 
    public void setEmailConfirmed(boolean emailConfirmed) { 
     this.emailConfirmed = emailConfirmed; 
    } 
    public String getEmail() { 
     return email; 
    } 
    public void setEmail(String email) { 
     this.email = email; 
    } 
    public String getRole() { 
     return role; 
    } 
    public void setRole(String role) { 
     this.role = role; 
    } 
    public String getUsername() { 
     return username; 
    } 
    public void setUsername(String username) { 
     this.username = username; 
    } 
} 
+0

Где вы положили Это? Что такое переменная 'session', как вы ее инициализировали? –

+0

Возможно, вы забыли включить основную библиотеку в свой JSP. Пожалуйста, покажите нам минимальный JSP, воспроизводящий проблему, начиная с самой первой строки ее до последней. Также посмотрите на сгенерированный HTML-код (используя «источник страницы просмотра» в браузере). –

+0

Что такое префикс 'c' в вашем теге? Подсчитайте определение 'taglib'. Также определите, какие библиотеки используются для его поддержки. –

ответ

0

Шаг 1: Поместите jstl-x.x.jar в Lib папку или поставить зависимость в мавена.

Шаг 2: В jsp файл

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
... 
<body> 
    <% UserDTO userdto=(UserDTO)session.getAttribute("userDTO"); %> 
    <%=userdto.getUsername() %> 
    Username from session:<c:out value="${sessionScope.userDTO.username }"/> 
     ... 
</body> 
3

В вашей JSP вы можете просто сделать это, используя выражение (его называют EL - выражение языка) -

<body> 
    Username from session : ${sessionScope.currentUser} 
</body> 
+1

Для меня работала '$ {sessionScope.userDTO}'. – RAS

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