Struts2中如何用<s:if>标签判断Session用户状态动态显示登录/登出按钮
完全可以通过<s:if>标签实现这个需求,操作步骤如下:
第一步:Action层存入登录用户
你已经实现了SessionAware接口,在登录逻辑验证账号密码通过后,把查询到的User对象存入Session即可,示例代码:
// 登录验证通过后执行 session.put("LOGIN_USER", user); // 这里的key LOGIN_USER可以自定义,前端保持一致即可
第二步:JSP页面编写判断逻辑
首先确保页面头部引入了Struts2标签库:
<%@ taglib prefix="s" uri="/struts-tags" %>
然后在需要显示按钮的位置写入以下标签代码:
<s:if test="#session.LOGIN_USER != null"> <button>Logout</button> <!-- 也可以额外展示用户名,比如:欢迎,<s:property value="#session.LOGIN_USER.name"/> --> </s:if> <s:else> <button>Login</button> </s:else>
补充注意事项
- 如果需要更严谨的判断,避免Session中存入空User对象的异常,可以把判断条件改为
#session.LOGIN_USER != null && #session.LOGIN_USER.idUser != null - 登出逻辑中记得移除Session中的用户对象:
session.remove("LOGIN_USER"),或者直接销毁Sessionsession.invalidate()
内容的提问来源于stack exchange,提问作者Jdvlp
相关产品推荐
相关产品推荐

