我想知道是否可以使用 Struts 2 的
<s:if>
标签检查用户是否处于会话中。
如果用户正在会话中,我需要显示它
Logout
否则 Login
。
我使用接口
SessionAware
进行登录操作和此类 User
。
package it.pwm.wynd.pojo.user;
public class User implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer idUser;
private String name;
private String username;
private String password;
private String email;
public User() {
}
public User(String name, String username, String password, String email) {
this.name = name;
this.username = username;
this.password = password;
this.email = email;
}
public Integer getIdUser() {
return this.idUser;
}
public void setIdUser(Integer idUser) {
this.idUser = idUser;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
}
如果没有关联的文件管理器,Struts2 标签就无法工作。如果您在 JSP 中使用 Struts 标签,请确保首先阅读标签。
如果是
SessionAware
,则可以将会话映射注入到操作中。
如果您想将一些对象(例如
)放入会话中,您可以使用身份验证拦截器,例如 this。
user
它检查会话中是否存在
并让操作调用,否则返回
user
结果。login
用户可能想使用不同的帐户多次登录,因此您不应该限制他/她这样做。
在 JSP 中,您可以使用
user
上下文变量通过 <s:if>
标签 检查会话中的 #session
。
<s:if test="#session.user == null">
<s:a action="login">Login</s:a>
</s:if>
<s:else>
<s:a action="logout">Logout</s:a>
</s:else>