【问题标题】:Print session attributes in jsp在jsp中打印会话属性
【发布时间】:2012-06-15 03:28:16
【问题描述】:

我的 webapp 已经准备好了,但我只是想添加一个以用户名作为标题的小下拉菜单。这是我的jsp代码:

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

原来如此

会话无法解析

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>

有一个会话,因为我已登录。

亲切的问候,

【问题讨论】:

  • 你用的是什么框架?

标签: java spring jsp servlets


【解决方案1】:

在您的 servlet 中:

 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}" />" />

你去吧。

【讨论】:

    【解决方案2】:

    您可以使用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 name 值是什么意思是 HTML 安全的?
    【解决方案3】:

    您可以尝试其他方法:

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

    session 没有得到解决的原因是您必须在页面指令中设置了session="false"

    Read this for further reference.

    【讨论】:

      【解决方案4】:

      我同意@Pau Kiat Wee 的回答。但是您也可以在模型映射中从控制器中设置此用户名,然后在 EL 中简单地使用它。那也将是一个不错的选择。希望这对您有所帮助。干杯。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-18
        • 2019-10-29
        相关资源
        最近更新 更多