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

omqzjyyz  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(66)

我想知道如果用户处于会话中,是否可以使用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;
    }

}

字符串

qcbq4gxm

qcbq4gxm1#

Struts2标签不能在没有关联的文件服务器的情况下工作。如果你在JSP中使用Struts标签,请确保你首先阅读了关于tags的内容。
如果是SessionAware,则可以将会话Map注入到操作中。
如果你想把一些像user这样的对象放到会话中,你可以使用像this这样的身份验证拦截器。
它检查会话中是否有user,并让操作调用,否则返回login结果。
用户可能想在不同的帐户下登录多次,所以你不应该限制他/她这样做。
在JSP中,可以使用#session上下文变量检查user<s:if> tag的会话。

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

字符串

相关问题