登录后再重定向到相应页面的功能实现

最近遇到一个要求登录后重定向到相应页面的功能,通过摸索基本上实现了这个功能

1 在登录拦截器中添加以下代码,把原来的请示参数保存到sesssion中。

HttpServletRequest request = inv.getController().getRequest();
Enumeration pNames = request.getParameterNames();
String redir = inv.getActionKey() + "?";
while (pNames.hasMoreElements()) {
    String name = (String) pNames.nextElement();
    redir += (name + "=" + request.getParameter(name));
}
inv.getController().setSessionAttr("redir", URLEncoder.encode(redir));

2 在登录页面Form里添加

<input type="hidden" name="redir" value="#(session.redir??)">

3 在用户登录功能中相应修改实现以下功能

public void dologin() {
    String redir = URLDecoder.decode(getPara("redir"));
    String code = getPara("code");
    String usrName = getPara("usrName");
    String usrPwd = getPara("usrPwd");
    if ("1".equals(usrName) && "1".equals(usrPwd)) {
        setSessionAttr("isLogin", true);
        if (StrKit.notBlank(redir)) {
            redirect(redir);
        } else {
            redirect("/admin");
        }
    } else {
        keepPara();
        render("index.html");
    }
}

这样就可以简单实现重定向登录功能。

评论区