接题,我纯粹只是window.location.href带一个参数跳到另一个页面,但是从日志显示我执行了两次这个跳转的方法,并且还带了前一个页面的请求的数据过去。
比如:首先我请求index.action,这个请求会自动加载页面信息,现在有一个button,我要点击这个button跳到message.jsp页面,请求为message.action?drct=?。但是当我跳到message.jsp页面的时候却带了index.action加载的信息。求各位同仁的智慧,给个思路或者建议。

解决方案 »

  1.   

    你可以选择redirect重定向过去~~
      

  2.   

    请参照request的作用域,你的action类似于一个servlet的作用
      

  3.   

    你这个跳转是用什么方式跳的呀
    你是用action跳的还是JavaScript跳的其实这两种不管用哪种方式,都能带参数过去,通过URL重写
      

  4.   


    function forward(type){
    var ID=$("#Id").val(); 
    window.location.href='../project/forwardPage.do?ID='+ID+'&type='+type;
    }请求发送后,struts找到请求的方法<action name="forwardPage" class="cn.easier.rcs.onebox.action.MessageAction" method="message">
    <result>/WEB-INF/page/onebox/message.jsp</result>
    </action>java里面的方法public String message() throws Exception {
                    log.info("跳转到message.jsp");
    return SUCCESS;
    }跳到message.jsp后日志显示调用了两次这个方法.
      

  5.   

    何不用Servlet   先跳到Servlet  然后把要传递的参数信息 设置好后在跳转到你想要的页面!
      

  6.   

    结贴了结贴了,这个问题比较抽象不好答,所以人人有分。
    我解决的方案是:把那个执行多次的方法返回null,因为我要从后台输入一个json到前台去,就是这个方法它老是多次执行。开始本来想通过继承json-default,在result中返回一个json类型。后面发现总是不理想,因为也没学多久,所以就没用这个了。直接用流的形式输入到前台,
    PrintWriter out = response.getWriter();
    out.println(message);
    return null;
    这样虽然不会报错,但是把数据一骨碌的全部发送到前台,对客户端的压力是不是大了点?