链接跳转只要参数中包含id就会丢失参数

背景:

系统框架是老旧的struts2.5.30,用户反馈邮件中的链接点击之后跳转不到指定的页面,于是进行排查,邮件中的链接: 

http://域名/login.jsp?page=/perform/index.action&id=13565 ,如果正常跳转应该是进入登录页面,当用户登录成功后重定向到/perform/index.action&wiid=13565 ,但实际登录成功后什么页面都没跳转。

排查后发现当链接跳转到login.jsp之后参数丢失了,于是网上各种查找无效后,尝试访问http://域名/login.jsp?page=/perform/index.action 发现参数未丢失,于是访问http://域名/login.jsp?id=13565发现参数id丢失了,网上各种查找依旧无效后也没查到什么原因,最后只能把id更改为其他参数名,实验之后无问题,老旧项目也懒得去细究,因此记录下问题的解决方法

顺便记录下提交到login.action时登录成功后的重定向的写法(以后可能会使用到):

1.   loginAction.java


public class LoginAction extends ActionSupport implements SessionAware, RequestAware {
    public String page;
    public String wiid;
    public String getWiid() {
        return wiid;
    }
    public void setWiid(String wiid) {
        this.wiid = wiid;
    }
    public String getPage() {
        return page;
    }
    public void setPage(String page) {
        this.page = page;
    }
    //以上用于接收页面传过来的参数,没办法struts框架就是那么麻烦

    public String login() throws Exception {
            //..........以上省略登录验证步骤,登录成功后判断以下
         if (StringUtils.isNotBlank(page)&& StringUtils.isNotBlank(wiid)) {
            return "gotowi";//登录再跳转回过期之前的页面
         } else {
            return "SUCCESS";
         }
    }

}

 2. 登录页面关键代码( login.jsp)

" validate="true" method="POST" > "/> " /> ...........账号/密码等等输入框

3. struts.xml


      
            goInquire
            /inquire
       
       /master/personPsw.jsp
            /login.jsp
            ${page}?wiid=${wiid} 
 

你可能感兴趣的:(前端)