Атрибуты сеанса печати в jsp

18

Мой webapp готов, но я просто хотел добавить небольшое раскрывающееся меню с именем пользователя в качестве названия. Это мой код jsp:

                <i class="icon-user"></i> 
                <%
                    session.getAttribute("name");
                %>
                <span class="caret"></span>

и это sais

сеанс не может быть разрешен

9:              <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
10:                     <i class="icon-user"></i> 
11:                     <%
12:                         session.getAttribute("name");
13:                     %>
14:                     <span class="caret"></span>
15:                 </a>

Существует сеанс, потому что я вошел в систему.

С уважением,

    
задан user1007522 12.06.2012 в 11:01
источник
  • Какие рамки вы используете? –  Yegor Chumakov 12.06.2012 в 11:05

4 ответа

38

Вы можете использовать EL, который предпочтительнее в JSP.

<c:out value="${sessionScope.name}"/>

Или, если значение name безопасно HTML, вы можете использовать

${sessionScope.name}

Убедитесь, что JSP разрешает сеанс доступа.

<%@ page session="true" %>

Чтобы использовать основной JSTL, убедитесь, что приведен следующий код.

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    
ответ дан Pau Kiat Wee 12.06.2012 в 11:05
источник
  • Спасибо за вашу помощь. Это решило это. Japs также благодарит! –  user1007522 12.06.2012 в 12:27
  • @Pau, что вы подразумеваете под именем, является безопасным HTML? –  UnKnown 02.09.2016 в 16:43
5

Вы можете попробовать альтернативу:

<% request.getSession().getAttribute("name") %>

Причина, по которой session не разрешается, заключается в том, что вы должны установить session="false" в своей странице.

Прочтите это для дальнейшей справки .

    
ответ дан Kazekage Gaara 12.06.2012 в 11:28
источник
  • Этот вариант не сработал –  Chernyavski.aa 11.07.2016 в 17:40
1

Я согласен с ответом @Pau Kiat Wee. Но вы также можете установить это имя пользователя из контроллера в modelmap, а затем просто использовать его в EL. Это также будет хорошим вариантом. Надеюсь, это поможет вам. Приветствия.

    
ответ дан Japan Trivedi 12.06.2012 в 11:11
источник
0

В вашем сервлете:

 1) get your parameter:

    String param = request.getParameter("param");

 2) send it to the request object as an attribute:

    request.setAttribute("param", param);

В вашем JSP:

   use JSTL, and EL to return the attribute you sent from your servlet:

   <input type="text" name="param" value="<c:out value="${param}" />" />

и там вы идете.

    
ответ дан ShadowCrow 01.05.2017 в 18:09
источник