【发布时间】:2011-09-01 10:31:12
【问题描述】:
我正在使用带有 struts2 的 sitemesh。我想在主布局页面上创建一个登录/注销链接。我们如何在那里获得 session 的价值。
【问题讨论】:
我正在使用带有 struts2 的 sitemesh。我想在主布局页面上创建一个登录/注销链接。我们如何在那里获得 session 的价值。
【问题讨论】:
简单示例
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>
【讨论】:
code 5: Akrithi Paytime - 计费和支付管理系统 6: 7: 8: code
${empty pageContext.request.remoteUser} 的值是多少?尝试新的空白 .jsp 页面。 Struts2 & Tomcat/web 服务器的版本?
Sitemesh-decorated jsp 页面中只有<s:set var="isNoLogin">${empty pageContext.request.remoteUser}</s:set> 怎么办?