使用 <s:if> 标记检查用户是否在 Struts 2 中的会话中



如果用户处于会话中,我想知道是否可以使用Struts2的<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标记在没有关联的filer的情况下无法工作。如果您在JSP中使用Struts标记,请确保您首先阅读了有关标记的内容。

如果会话映射是SessionAware,则可以将其注入到操作中。

如果您想将user之类的对象放入会话,您可以使用这样的身份验证拦截器。

它检查会话中是否有user,并让操作调用,否则返回login结果。

用户可能想在不同的帐户下登录几次,所以你不应该限制他/她这样做。

在JSP中,您可以使用#session上下文变量检查会话中带有<s:if>标记的user

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

相关内容

  • 没有找到相关文章

最新更新