Получить значение сеанса в Struts / Sitemesh - PullRequest
0 голосов
/ 25 мая 2011

Я использую sitemesh с Struts2.Я хочу создать ссылку для входа / выхода из системы на главной странице макета.Как мы можем получить значение сессии там.

1 Ответ

1 голос
/ 25 мая 2011

Простой пример

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>
...