使用 <s:if> 标签检查用户是否处于 Struts 2 中的会话中

问题描述 投票:0回答:1

我想知道是否可以使用 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;
    }


}
java jsp struts2 ognl struts-tags
1个回答
0
投票

如果没有关联的文件管理器,Struts2 标签就无法工作。如果您在 JSP 中使用 Struts 标签,请确保首先阅读标签

如果是

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

如果您想将一些对象(例如

user
)放入会话中,您可以使用身份验证拦截器,例如 this

它检查会话中是否存在

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>   
© www.soinside.com 2019 - 2024. All rights reserved.