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

Using <s:if> tag to check if the user is in session in Struts 2

提问人:Jdvlp 提问时间:11/12/2021 最后编辑:Roman CJdvlp 更新时间:11/12/2021 访问量:476

问:

我想知道是否可以检查 Struts 2 的标签是否用户在会话中。<s:if>

如果用户在会话中,我需要否则显示它。LogoutLogin

我使用登录操作的界面和这个类。SessionAwareUser

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赞 Dave Newton 11/12/2021
是的,这是可能的。Struts 2 标记文档树在多个位置介绍了访问会话变量,但最好快速退后一步,查看 OGNL 概述

答:

0赞 Roman C 11/12/2021 #1

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

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

如果你想把一些对象(如an)放到会话中,你可以像这样使用身份验证拦截器。user

它检查会话中是否存在并让操作调用,否则返回结果。userlogin

用户可能希望在不同的帐户下多次登录,因此您不应限制他/她这样做。

在 JSP 中,您可以使用上下文变量检查带有 <s:if> 标记的会话。user#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>