【问题标题】:Get session value in struts/sitemesh在 struts/sitemesh 中获取会话值
【发布时间】:2011-09-01 10:31:12
【问题描述】:

我正在使用带有 struts2 的 sitemesh。我想在主布局页面上创建一个登录/注销链接。我们如何在那里获得 session 的价值。

【问题讨论】:

    标签: struts2 sitemesh


    【解决方案1】:

    简单示例

    decorators.xml

    <decorators defaultdir="/decorators">
        <decorator name="default" page="default.jsp">
            <pattern>/*</pattern>
        </decorator>
    </decorators>
    

    /decorators/default.jsp

    使用 Struts2 标签

    <s:set var="isNoLogin">${empty pageContext.request.remoteUser}</s:set>
    
    <s:if test="#isNoLogin">
        <s:a action="login">Login</s:a>
    </s:if>
    <s:else>
        <s:a action="logout">Logout</s:a>
    </s:else>
    

    <s:set var="remoteUser">${pageContext.request.remoteUser}</s:set>
    
    <s:if test="#remoteUser != null && !#remoteUser.isEmpty()">
        <s:a action="login">Login</s:a>
    </s:if>
    <s:else>
        <s:a action="logout">Logout</s:a>
    </s:else>
    

    使用 JSTL

    <c:if test="${empty pageContext.request.remoteUser}">
        <s:a action="login">Login</s:a>
    </c:if>
    <c:if test="${not empty pageContext.request.remoteUser}">
        <s:a action="logout">Logout</s:a>
    </c:if>
    

    <c:choose>
        <c:when test="${empty pageContext.request.remoteUser}">
            <s:a action="login">Login</s:a>
        </c:when>
        <c:otherwise>
            <s:a action="logout">Logout</s:a>
        </c:otherwise>
    </c:choose>
    

    【讨论】:

    • struts part java.lang.RuntimeException: org.apache.jasper.JasperException: 在第 8 行处理 JSP 页面 /JSP/Decorators/Header.jsp code 5: Akrithi Paytime - 计费和支付管理系统 6: 7:

      8: ${empty pageContext.request.remoteUser} 9 : 10: 11: 登录 code

    • @Akhil 您应该尝试自己处理这个异常。 ${empty pageContext.request.remoteUser} 的值是多少?尝试新的空白 .jsp 页面。 Struts2 & Tomcat/web 服务器的版本?
    • 都是最新版本。 struts 和 apache... ${empty pageContext.request.remoteUser} 返回 true。
    • 在新的、空白的、没有Sitemesh-decorated jsp 页面中只有&lt;s:set var="isNoLogin"&gt;${empty pageContext.request.remoteUser}&lt;/s:set&gt; 怎么办?
    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2012-06-21
    相关资源
    最近更新 更多