如题,我现在想要的结果是,在struts2的action执行方法中拼接出一个url,在执行完action后直接跳转到这个url即可,如果在struts.xml中配置?谢谢

解决方案 »

  1.   

    不就是在struts.xml这个文件里设类型为redirect的配置吗
      

  2.   

    给你代码参考下:
    struts.xml里的:....
     <action name="allBrandsFind" class="/control/product/allbrandsfinder">
          <result name="success">/WEB-INF/page/product/brandsinfo.jsp</result>
        </action>
        <action name="*BrandSave" class="/control/product/brandsaver" method="{1}">
          <!--  使用自定义的Store拦截器,再两个action中传递msg -->
          <param name="savePath">/upload</param>
          <result name="input">/WEB-INF/page/product/inputbrandsaver.jsp</result>
          <result name="success" type="redirectAction">
            <param name="ActionName">allBrandsFind</param>
          </result>
        </action>
    ....
      

  3.   

    思路:
    1,将此url设制到一个变量中,如变量url
    2,返回至一个通用跳转界面
    3,读取url变量,直接跳转到相应界面参考代码如下:(此处的url为自定义对象)
    public class UrlSupport extends BaseAction{
    /** 要转向的url地址 */
    protected Url url; public Url getUrl() {
    return url;
    }
    }
    通用跳转界面:
    <s:if test="url != null">
    <script type="text/javascript">
    setTimeout(function() {
    window.self.location.href = "<s:property value="url.url"/>";
    }, <s:property value="url.millisecond"/>);
    </script>
    </s:if>
      

  4.   

    可以获取到request对象和response对象再做重定向或转发try
    {
    ServletActionContext.getRequest().getRequestDispatcher("url").forward(ServletActionContext.getRequest(),ServletActionContext.getResponse());
    }
    catch (Exception e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try
    {
    ServletActionContext.getResponse().sendRedirect("url");
    }
    catch (Exception e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  5.   

    你可以再加个Action,然后return到这个Action上,前提你的这些Action必须在同一个类上。这样的做法,一般是用来重新刷新主页面。
      

  6.   

    struts2会有一个return操作,像你这样执行跳转后,return就报错了
      

  7.   


    你说的时这样吗?<action name="login" method="loginIn" class="loginAction">
    <result name="success" type="redirect">${url}</result>
    </action>
    url是在action中定义的参数,提供get set方法。
      

  8.   

    还是在xml中,配置,不同的值,对应不同的地址
      

  9.   

    但是我在action方法中拼接的url怎么在struts.xml配置文件中获得,并跳转咧?我试了下,<action name="login" method="loginIn" class="loginAction">
    <result name="success" type="redirect">${url}</result>
    </action>这个url应该是可以获得的,我拼接的url是http开头的,跳转的时候报错,说不是合法的字符(要以“/”开头)
      

  10.   

     你struts.xml配置一下就ok了 google一下吧
      

  11.   


    跳转到action里面 直接写action!doXX.action 不要http那些
      

  12.   

    7楼和9楼正解,现在struts的action里定义一个url变量,在方法里拼完地址后
    <action name="login" method="loginIn" class="loginAction">
    <result name="success" type="redirect">${url}</result>
    </action>用这个就行了