`
bingbing
  • 浏览: 19679 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Struts框架下控制跳转问题[更新]

阅读更多
return (mapping.findForward("success"));

我们都是通过上面的方法在Action中跳转,现在我的问题是"

我从数据库读出来一个内容,根据内容条到不同的页面,内容可以是一个URL地址

我原来的办法是经过判断,对应Struts-config.xml中有N个forward

根据判断结果return不同的 mapping

这种做法的缺点显而易见:

可能跳转的页面如果增加 需要增加代码量高,配制文件也多........

我想问问有没有好一点的方法实现此功能,

比如可能动态的更改XML配置? 或者SUN公司或者APACHE提供了相应的类相应的方法什么的

麻烦了:)


解决方案整理(因为各位都帮忙,都出力了,名字写不全就不好了,故就不写名字了,衷心谢谢大家):

第一个方案:在struts里都跳到同一个页面 然后把数据库中的URL传到那个页面
           让那个页面立刻跳到URL页面

第二个方案:return new ActionForward("a.jsp");  
             or  
          return new ActionForward("a.jsp",true);

还有2个没看懂的方案,呵呵,再研究研究
分享到:
评论
24 楼 bingbing 2007-01-19  
ecsun 写道
action 中仍然使用 使用普通的forward
<forward name="forward" path="*.jsp"></forward>
但是在转发前,要做一件事情,从数据库里得到一个将要转发的路径信息
在*.jsp中这样处理:
<c:redirect url="*.jsp or action.do?...."/>


这2周一直做项目需求,忙的要死,看到这么多人帮我,谢谢了

实现了2种解决方法,嘿嘿,再次谢谢

但是上面的不会用哈:)  嘿嘿太笨了
23 楼 抛出异常的爱 2007-01-11  
为了以防万一的东西。。。。
没有一个方便的。。。

22 楼 ddandyy 2007-01-11  
那又不是说完全不要xml

这个是针对目前这个需求说的好吧

不过不得不说  有些xml确实很有用  可是有一些.............感觉烦得要死
21 楼 抛出异常的爱 2007-01-11  
ddandyy 写道
只要跳转页面的目录控制的严格  要找那些页面的文件的时候 根本就不需要去看xml文件

另外如果真要找这个页面  既然知道是这个action跳转的 去看这个class难道会比xml慢很多么

这个所谓的什么缺点  和 那个烦琐的添加比起来 到底应该取舍哪个呢 

难道一定要死在框架里么  他开源的作用何在

当项目只剩class与jar时xml配置就是个好方法。。。
20 楼 simohayha 2007-01-11  
ddandyy 写道
只要跳转页面的目录控制的严格  要找那些页面的文件的时候 根本就不需要去看xml文件

另外如果真要找这个页面  既然知道是这个action跳转的 去看这个class难道会比xml慢很多么

这个所谓的什么缺点  和 那个烦琐的添加比起来 到底应该取舍哪个呢 

难道一定要死在框架里么  他开源的作用何在


同意,看到一大堆xml,我头都大了.
19 楼 ddandyy 2007-01-11  
只要跳转页面的目录控制的严格  要找那些页面的文件的时候 根本就不需要去看xml文件

另外如果真要找这个页面  既然知道是这个action跳转的 去看这个class难道会比xml慢很多么

这个所谓的什么缺点  和 那个烦琐的添加比起来 到底应该取舍哪个呢 

难道一定要死在框架里么  他开源的作用何在
18 楼 gl2001wl 2007-01-11  
但是我认为"路径"还是应该在xml中的forward进行配置。
struts将页面集中在xml中管理绝对不是不重要的作用,因为当页面非常多的时候,你再去代码中寻找和修改一个页面的连接实在是一件非常痛苦的事情。
至于lz所说的:
根据判断结果return不同的 mapping

这种做法的缺点显而易见:

可能跳转的页面如果增加 需要增加代码量高,配制文件也多........

这就是struts的特点所决定的。虽然烦琐,但是却将页面集中管理,所谓鱼与熊掌不可兼得。
17 楼 simohayha 2007-01-11  
抛出异常的爱 写道
bingbing 写道
return (mapping.findForward("success"));

我们都是通过上面的方法在Action中跳转,现在我的问题是"

我从数据库读出来一个内容,根据内容条到不同的页面,内容可以是一个URL地址

我原来的办法是经过判断,对应Struts-config.xml中有N个forward

根据判断结果return不同的 mapping

这种做法的缺点显而易见:

可能跳转的页面如果增加 需要增加代码量高,配制文件也多........

我想问问有没有好一点的方法实现此功能,

比如可能动态的更改XML配置? 或者SUN公司或者APACHE提供了相应的类相应的方法什么的

麻烦了:)


ruby on ralis 1.2

静态语言也可以模仿但很少看人用到

lighter 写道
对一些CRUD的Action,可以使用通配符
<action path="/admin/*" name="{1}Form" parameter="method" scope="request" validate="false">
            <forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>
            <forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>
            <forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>
action>

今天看到一个。。。这个方法可行?


springside就是用这种方法的.
16 楼 刑天战士 2007-01-11  
return new ActionForward("路径");
15 楼 抛出异常的爱 2007-01-11  
bingbing 写道
return (mapping.findForward("success"));

我们都是通过上面的方法在Action中跳转,现在我的问题是"

我从数据库读出来一个内容,根据内容条到不同的页面,内容可以是一个URL地址

我原来的办法是经过判断,对应Struts-config.xml中有N个forward

根据判断结果return不同的 mapping

这种做法的缺点显而易见:

可能跳转的页面如果增加 需要增加代码量高,配制文件也多........

我想问问有没有好一点的方法实现此功能,

比如可能动态的更改XML配置? 或者SUN公司或者APACHE提供了相应的类相应的方法什么的

麻烦了:)


ruby on ralis 1.2

静态语言也可以模仿但很少看人用到

lighter 写道
对一些CRUD的Action,可以使用通配符
<action path="/admin/*" name="{1}Form" parameter="method" scope="request" validate="false">
            <forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>
            <forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>
            <forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>
action>

今天看到一个。。。这个方法可行?
14 楼 simohayha 2007-01-11  
也就是说 是这样 
return new ActionForward("a.jsp");
or
return new ActionForward("a.jsp",true);
13 楼 lighter 2007-01-10  
对一些CRUD的Action,可以使用通配符
引用
<action path="/admin/*" name="{1}Form" parameter="method" scope="request" validate="false">
            <forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>
            <forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>
            <forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>
action>
12 楼 ddandyy 2007-01-10  
恩恩  原来还能new的
11 楼 esprit 2007-01-10  
gl2001wl 写道
hurry07 写道
esprit 写道
我的做法是直接new ActionForward出来,然后进行跳转,没有在配置文件里配置
楼上意思是用jsp标准的转向来解决这个问题了?
既然用了struts,又不在配置文件里配置路径,意义何在?

这里需要动态选择跳转的路径,这只是我的一个解决方法
大家有好的解决方法,都可以提出来探讨一下。
10 楼 esprit 2007-01-10  
hurry07 写道
esprit 写道
我的做法是直接new ActionForward出来,然后进行跳转,没有在配置文件里配置
楼上意思是用jsp标准的转向来解决这个问题了?

是new ActionForward对象
ActionForward actionForward = new ActionForward();
根据数据库中读取的内容不通设置不通的跳转Path,actionForward.setPath()
最后return actionForward;
9 楼 ddandyy 2007-01-10  
struts最大的贡献是form和action吧.....
跳转页面又不是什么大不了的事 为什么一定要用他的方法呢
8 楼 过河卒 2007-01-10  
从数据库中读出的Url是不能确定的,要把不能确定的绑定到事先定义好的struts-config.xml不合适,如果只是临时转发一次,动态修改struts-config.xml显得得不偿失,还不如直接new ActionForward转发来的痛快。
7 楼 gl2001wl 2007-01-10  
hurry07 写道
esprit 写道
我的做法是直接new ActionForward出来,然后进行跳转,没有在配置文件里配置
楼上意思是用jsp标准的转向来解决这个问题了?
既然用了struts,又不在配置文件里配置路径,意义何在?
6 楼 hurry07 2007-01-10  
esprit 写道
我的做法是直接new ActionForward出来,然后进行跳转,没有在配置文件里配置
楼上意思是用jsp标准的转向来解决这个问题了?
5 楼 esprit 2007-01-10  
我的做法是直接new ActionForward出来,然后进行跳转,没有在配置文件里配置

相关推荐

Global site tag (gtag.js) - Google Analytics