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

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出来,然后进行跳转,没有在配置文件里配置

相关推荐

    struts框架原理图

    在Struts框架中,页面跳转是通过`ActionForward`对象来控制的。当一个`Action`执行完毕后,它会返回一个`ActionForward`对象,该对象包含了目标资源的名称和路径。例如: ```java public ActionForward execute...

    struts框架详细介绍

    Struts框架是一个基于MVC(模型-视图-控制器)设计模式的Java Web应用程序框架,由Apache软件基金会的Struts项目开发。它旨在提供一种结构化的、可维护性高的开发方式,以帮助开发者构建Web应用。以下是Struts框架的...

    struts框架与标签.doc

    Struts框架的标签库极大地提高了开发者的工作效率,使得JSP页面更加专注于展示,而不是控制逻辑。例如,Bean标签可以轻松地显示和操作Bean属性,Logic标签则提供了条件判断和循环控制,而HTML标签则简化了表单元素的...

    struts框架

    Struts框架是一种基于MVC(模型-视图-控制器)设计模式的Java EE Web应用框架,主要用于简化企业级Java Web应用的开发。Struts作为Java EE应用中不可或缺的一部分,尤其在Java社区中广泛应用。本文主要介绍Struts...

    Struts框架应用于jsp中

    Struts框架是Java Web开发中的一个关键组件,它在JSP(JavaServer Pages)基础上提供了一种更规范、更易维护的MVC(Model-View-Controller)架构。标题"Struts框架应用于jsp中"表明我们将探讨如何在JSP应用程序中...

    struts框架的基本实现

    总的来说,Struts框架提供了一种规范化的Web应用开发模式,通过解耦业务逻辑、控制流程和表现层,使得开发更加高效。在实际应用中,开发者可以根据需求自定义Action、ActionForm和JSP,实现复杂的业务场景。而Java...

    Struts2简单的页面跳转示例

    上述配置表示,当`execute()`方法返回"success"时,Struts2框架将会把控制权交给`/pages/success.jsp`页面,从而实现页面跳转。 在实际应用中,我们可能会有多种结果,比如"error"、"input"等,每种结果都对应不同...

    struts2框架源码分析及问题汇总

    6. 安全问题:Struts2存在一些已知的安全漏洞,如S2-005和S2-045,应及时更新Struts2版本以修复这些漏洞。 通过对Struts2源码的深入研究,开发者不仅可以理解框架的工作原理,还能针对具体需求进行定制化开发,提高...

    一个运用了struts框架的学生请假系统

    另一个文件"leave"可能是项目的源代码压缩包,包含了Struts框架下的Java类、配置文件(如struts-config.xml、web.xml)、JSP视图文件等。其中,`struts-config.xml`是Struts的核心配置文件,定义了Action及其对应的...

    struts框架实例

    Struts2 框架实例教程 Struts2 是一款基于 Model-View-Controller(MVC)设计模式的开源 JavaEE 框架,用于构建企业级 Web 应用程序。它提供了强大的动作处理、结果转发、表单验证、国际化等功能,极大地简化了Web...

    struts框架的最简单应用,懂的就不用下了

    Struts框架是Java Web开发中的一个关键工具,它基于Model-View-Controller(MVC)设计模式,旨在简化Web应用程序的构建。这个压缩包可能是为了帮助初学者理解并开始使用Struts框架的基础知识。 首先,Struts框架的...

    Struts框架的三个项目实例

    Struts框架是Java Web开发中的一个关键组件,它基于MVC(Model-View-Controller)设计模式,旨在简化Web应用程序的构建。这个压缩包包含了三个使用Struts2框架实现的项目实例:租房管理、宠物管理和学生管理。这些...

    基于struts框架的购物车系统

    4. **Action**:Struts框架的Action类,如AddToCartAction、CheckoutAction等,响应用户的特定操作,调用Service层方法并控制页面跳转。 5. **JSP页面**:如index.jsp(首页)、cart.jsp(购物车页面)、checkout....

    本人自己开发的Struts框架 可以自动填充属性 及验证跳转

    本项目是个人开发者自创的一个Struts框架实现,具有自动填充属性和验证跳转的功能,虽然未包含文件上传的支持,但整体设计简洁易懂,适合初学者进行学习和实践。 1. **自动填充属性**:在Struts2中,这一功能通常...

    struts1.3页面跳转问题

    Struts1.3是一个经典的Java Web框架,用于构建企业级应用程序。在Struts1.3中,页面跳转是常见的需求,它涉及到Action类、配置文件(struts-config.xml)以及JSP页面间的交互。本篇文章将深入探讨Struts1.3中的页面...

    J2EE项目实训——Struts框架技术.rar

    Struts框架是Java EE(以前称为J2EE)平台上的一个关键组件,它是一个开源的MVC(Model-View-Controller)框架,用于构建可维护性高、结构清晰的Web应用程序。本实训主要关注如何使用Struts框架进行实际项目的开发,...

    Struts框架简介

    4. **配置文件(struts-config.xml)**:此文件是Struts框架的核心配置,定义了ActionServlet如何处理请求,Action类和ActionForm类之间的映射,以及ActionForward对象如何指示操作后的页面跳转。 5. **ActionForm*...

    struts框架详细介绍(ppt)

    Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它为开发者提供了一种结构化的开发方式,简化了web应用的构建。以下是关于Struts框架的详细知识点: 1. **框架组成部分**: - ...

    Struts开发框架简介

    在Struts框架中,Model代表业务逻辑,通常由JavaBeans或EJB实现;View是用户界面,通常使用JSP或HTML;Controller是控制器,它负责接收HTTP请求,调用相应的业务逻辑,然后更新视图。Struts通过Action类作为控制器的...

Global site tag (gtag.js) - Google Analytics