现在HttpUtils的功能很多都转到HttpServletRequest中去了,
现在你可以这样用:
String originalURL=HttpServletRequest.getRequestURL().toString();
struts的请求转发都是通过ActionServlet来执行的,如果这样的话,你可以考虑直接用
request.sendRedirect()和RequestDispacher.forward()来转发请求!
为什么一定要用绝对地址呢?如果得到URI不更好?
request.getRequestURI();

解决方案 »

  1.   

    谢谢楼上,我照你的方法做了
    得到了相对路径
    但是仍然转发不成功
    产生了java.lang.IllegalStateException: Cannot forward after response has been committed的错误
    我的代码如下:
    if(hf.getOriginalURL()!=null){
    String url=hf.getOriginalURL();
    RequestDispatcher rd=request.getRequestDispatcher(url);
    try{
    rd.forward(request,response);
    }
    catch(Exception e){}
    }
    return (mapping.findForward("success"));原因是当程序运行完rd.forward(request,response);后并没有立即转发
    而是继续运行到了return (mapping.findForward("success"));
    然后报错
      

  2.   

    if(hf.getOriginalURL()!=null){
    String url=hf.getOriginalURL();
    //RequestDispatcher rd=request.getRequestDispatcher(url);
    try{
    //rd.forward(request,response);
                      return new ActionForward(url,false);
    }
    catch(Exception e){}
    }
    return (mapping.findForward("success"));
    因为forward会继续下面执行的,所以用我的办法
      

  3.   

    呵呵
    我目前用的就是这种方法
    但是要对url进行处理
    因为通过url=request.getRequestURI()得到的路径把上下文路径也包含进来了
    就是/YCProject/mypage.jsp(YCProject是项目名称)
    我不得不用subString()方法把前面截去
    请问还有没有方法只得到/mypage.jsp呢?