ActionForward url 跳转问题 404

yexinkong 2012-10-12 03:39:16
通过request.getRequestURI()得到url链接后
action中获得url
但是return new ActionForward("/"+url);404地址错误
请问上一步红色的部分要怎么实现跳转

我的到的url链接是:/项目名/xxxx.do
...全文
348 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bird_cat 2012-10-12
  • 打赏
  • 举报
回复
楼主用 request.getContextPath()/xxx.do 试一下 如何
yexinkong 2012-10-12
  • 打赏
  • 举报
回复
或者 怎样可以让actionForward.setPath("xxx.do")跳转不是从工程名下面开始 直接跳转到http://路径
yexinkong 2012-10-12
  • 打赏
  • 举报
回复
为什么我得到的url 会有工程名 你们得到的会不会这样
yexinkong 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 11 楼 的回复:

设置成actionForward.setPath("xxx.do");是行的
不过我的url前面多了一个工程名就不行了

url是通过request.getRequestURI()得到的

他默认就是从工程开始找的,你还是处理一下 request.getRequestURI()下吧。
[/Quote]
如何处理 可有高招 求教
jackson_fighting 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

设置成actionForward.setPath("xxx.do");是行的
不过我的url前面多了一个工程名就不行了

url是通过request.getRequestURI()得到的
[/Quote]
他默认就是从工程开始找的,你还是处理一下 request.getRequestURI()下吧。
yexinkong 2012-10-12
  • 打赏
  • 举报
回复
设置成actionForward.setPath("xxx.do");是行的
不过我的url前面多了一个工程名就不行了

url是通过request.getRequestURI()得到的
jackson_fighting 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

我的url路径已经得到了,有两种
可以是1: http://localhost/工程名/xxxx.do
或者是2: /工程名/xxxx.do
但是使用return new ActionForward话两种跳转都出现404

之前项目中没有错误的写法是return new ActionForward("/abc.do");
[/Quote]

那直接
actionForward.setPath("xxx.do");也不行?
楼主看下你的xxx.do在struts-config.xml 里面是怎么配置的
yexinkong 2012-10-12
  • 打赏
  • 举报
回复
我的url路径已经得到了,有两种
可以是1: http://localhost/工程名/xxxx.do
或者是2: /工程名/xxxx.do
但是使用return new ActionForward话两种跳转都出现404

之前项目中没有错误的写法是return new ActionForward("/abc.do");
jackson_fighting 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

跳路径的方法很纠结,注意斜杠方向,还有,该加path的地方不能少。你先把打印的路径取出来输入浏览器试试,行了就是行了,不行是看多什么,去掉就好了,不过跳("xxx.do?dispatch=XXX");
的方法,注意是不是定义了自己的packge。,定义的话前面要加上就是("/packeg/xxx.do?dispatch=XXX");
[/Quote]

不对! 路径是在struts-config.xml里面配置的。 和包没有关系
桃园闲人 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
通过request.getRequestURI()得到url链接后
action中获得url
但是return new ActionForward("/"+url);404地址错误
请问上一步红色的部分要怎么实现跳转

我的到的url链接是:/项目名/xxxx.do
[/Quote]
把url前面的“/”去掉,直接写URL,同时URL应该是个映射路径,不用谢工程名得,web项目的URL默认就是从工程名下开始的。
jackson_fighting 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

Java code

ActionForward actionForward = new ActionForward();
actionForward.setPath("xxx.do?dispatch=XXX");
actionForward.setRedirect(true)
return actionForward;

SDN_SUPERUSER……
[/Quote]

这样是没有问题的 ,楼主检查一下你的URL吧。

ActionForward actionForward = new ActionForward();
//如果不带"/"默认从跟目录查找
actionForward.setPath("/"+"fail.jsp");
actionForward.setRedirect(true);
return actionForward;


daxiang253 2012-10-12
  • 打赏
  • 举报
回复
404是路径错误
楼主多尝试一下就解决了
yao376689024 2012-10-12
  • 打赏
  • 举报
回复
跳路径的方法很纠结,注意斜杠方向,还有,该加path的地方不能少。你先把打印的路径取出来输入浏览器试试,行了就是行了,不行是看多什么,去掉就好了,不过跳("xxx.do?dispatch=XXX");
的方法,注意是不是定义了自己的packge。,定义的话前面要加上就是("/packeg/xxx.do?dispatch=XXX");
yexinkong 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

Java code

ActionForward actionForward = new ActionForward();
actionForward.setPath("xxx.do?dispatch=XXX");
actionForward.setRedirect(true)
return actionForward;
[/Quote]
SDN_SUPERUSER用你的方法
我把actionForward.setPath("xxx.do?dispatch=XXX");
修改成actionForward.setPath(url);
提示我错误java.lang.IllegalArgumentException: Path http://localhost/项目名称/xxx.do does not start with a "/" character
修改成actionForward.setPath("/"+url);404错误
就是这一步跳转要如何实现

有其他跳转方式也行,求实现
jackson_fighting 2012-10-12
  • 打赏
  • 举报
回复

ActionForward actionForward = new ActionForward();
actionForward.setPath("xxx.do?dispatch=XXX");
actionForward.setRedirect(true)
return actionForward;
jackson_fighting 2012-10-12
  • 打赏
  • 举报
回复
楼主参考下

ActionForward actionForward = new ActionForward();
actionForward.setPath("xxx.do?dispatch=XXX");
actionForward.setRedirect(true);
return actionForward;

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧