群讨论记录:在STRUTS里里面用forward转不到指定的页面
感谢群里面热心的朋友,帮助解决一个又一个的问题,下面是关于该问题的全部解决过程,再次感谢!
深圳-Bruce Lee 17:17:14
各位遇到过样的情况没有,在STRUTS里里面用forward转不到指定的页面,检查了和方面的配置,都正常,并且原来也是这样使用的都正常,这是ACTION配置:
<action path="/saveMsg" name="saveMsg" type="msg.action.SaveMsg">
<forward name="success" path="/disAllTitle.jsp" />
</action>
在ACTION里面采用:
return mapping.findForward("success");
深圳-Bruce Lee 17:17:59
提交完后,页面一片空白,再回来查看,内容已经输入进去了
江苏-B10nJJ 17:22:05
页面地址对不对啊?找不到forward的时候会抛exception的,应该已经找到了。
深圳-Bruce Lee 17:24:37
没有异常,页面地址是对的
深圳-Bruce Lee 17:24:57
就给一个空白页面,写入或者是更改也都是正常的
江苏-B10nJJ 17:25:22
换个浏览器看看。
深圳-Bruce Lee 17:25:40
我是IE,
深圳-Bruce Lee 17:26:02
我用FIRFOX的时候有时会问题,但IE还从来没有
深圳-Bruce Lee 17:26:05
我试试
深圳-Bruce Lee 17:29:17
换FIRFOX,也不行
江苏-B10nJJ 17:30:25
/disAllTitle.jsp 直接访问这个是什么结果?
深圳-Bruce Lee 17:35:35
哈哈,谢谢,我的访问要这样:disAllTitle.do
深圳-Bruce Lee 17:36:01
因为显示数据需要触发,一个字,笨
深圳-Bruce Lee 17:36:35
但这里我改这样出错了
深圳-Bruce Lee 17:36:48
看来还不能够直接访问,需要架桥了
深圳-Bruce Lee 17:36:58
需要中间JSP页面
江苏-B10nJJ 17:37:37
jsp只是一个view而已,一个action是可以forword到另外一个action的。
深圳-Bruce Lee 17:41:05
这个要怎么做?
深圳-Bruce Lee 17:42:04
我现在用的是中间跳转页面
深圳-Bruce Lee 17:44:50
我新建了一个disAllTitle_.jsp,把forword转到这里,然后在这个JSP里面有一句:
<jsp:forward page="disAllTitle.do"/>
就转到显示去了,不过我觉得走了转路
还得在回来的时候再次调用处理
江苏-B10nJJ 17:45:18
明显走了转路
江苏-B10nJJ 17:45:56
return new ActionForward("disAllTitle.do");
江苏-B10nJJ 17:46:01
这样不行?
深圳-Bruce Lee 17:46:04
<action path="/inputMsg" name="inputMsg" type="msg.action.InputMsg" validate="true">
<forward name="success" path="/disAllTitle.do" />
</action>
深圳-Bruce Lee 17:46:17
我试试
江苏-B10nJJ 17:46:17
ActionForward死的,人活的- -
深圳-Bruce Lee 17:46:33
从来没有那样用过,现在我是“死的”,它是活的
江苏-B10nJJ 17:46:58
或者 return new ActionForward("/disAllTitle");
好久没用struts了。。。
江苏-B10nJJ 17:49:03
如果刚刚学的话,别学struts了,学webwork或者s2吧,s1太恶心了。
深圳-Bruce Lee 17:56:19
呵呵,其它的我更不熟了,
先把这个学到,因为外面这方面的要求还是很多的
深圳-Bruce Lee 17:57:10
STRUTS,就是WEBOWRK的前身
江苏-B10nJJ 17:57:17
架构师都想转型的,就是因为都不会s2/webwork
深圳-Bruce Lee 17:57:26
我在官方网站上看到过这样一句话
江苏-B10nJJ 17:57:57
非也,webwork是struts2 的前身,这两个和struts1 差别相当大
深圳-Bruce Lee 17:58:07
我觉得你是什么知道,你主要负责那方面的
深圳-Bruce Lee 17:59:06
就是记得他们有关系,我还为是这个
确实,不过,我还是先学这个,然后再去学那个,毕竟这个入门,后面的路肯定要走很多
江苏-JR 17:59:08
确实什么都知道
江苏-B10nJJ 17:59:48
我是令杂工。什么都被迫搞过。
深圳-Bruce Lee 18:07:05
return new ActionForward("disAllTitle.do");
要成这样:
return new ActionForward("/disAllTitle.do");
深圳-Bruce Lee 18:07:29
但在JSP页面触发的就不能加/
深圳-Bruce Lee 18:10:46
这样提示找不到页面:return new ActionForward("/disAllTitle");
总结:有三种方式可行:
1、采用return new ActionForward("/disAllTitle.do");
2、采用
<action path="/saveMsg" name="saveMsg" type="msg.action.SaveMsg">
<forward name="success" path="/disAllTitle.do" />
</action>
在ACTION里面采用:
return mapping.findForward("success");
3、采用我上面说到的中转:
新建了一个中转如disAllTitle_.jsp,把forword转到这里,然后在这个JSP里面有一句:
<jsp:forward page="disAllTitle.do"/>
在action里面这样:
return mapping.findForward("success");
在struts-confing.xml这样写:
<action path="/saveMsg" name="saveMsg" type="msg.action.SaveMsg">
<forward name="success" path="/disAllTitle_.jsp" />
</action>
综上,肯定是第一种最简单了。