`

ForwardAction、IncludeAction、SwitchAction

阅读更多
转载:http://hi.baidu.com/javajavajava/blog
有的时候您只是想要从一个页面或资源转换到另一个资源,在MVC/Model 2的架构中,直接使用页面或资源的路径来叫用并不是一个好的主意,这会使得控制器没有机会处理相关的请求事宜。

您仍应该透过控制器,使用ForwardAction可以帮您完成这个事情,当控制器使用ForwardAction时perform()方法时,它会使用属性parameter所设定的路径进行forward的动作,一个设定ForwardAction的例子如下:
代码:
 <action 
   path="/Welcome" 
   type="org.apache.struts.actions.ForwardAction" 
   parameter="/pages/Welcome.jsp"/> 

同样的,有时候您会需要引入一个页面或资源,这时您可以使用IncludeAction,其设定方式与ForwardAction相同,只不过它是用include的方式来调用页面或资源:
代码:
<action 
  path="/SomeResource" 
  type="org.apache.struts.actions.IncludeAction" 
  parameter="/path/someServlet"/>

SwitchAction用于从一个模块转换至另一个模块,当您的应用程序分作多个模块时,您有两个方法可以在模块之间切换,第一个方法是使用相对于Context的路径来进行 forward 查找,我们之前在介绍模块化时就是使用这个方法:
代码:
<global-forwards> 
  <forward 
    name="login" 
    contextRelative="true" 
    path="/login/Login.do" 
    redirect="true"/> 
</global-forwards> 

这是在全区可查找的 forward 中的设定,在<action>卷标中也可以像上面一样使用<forward>卷标,,例如:
代码:
 <action ... > 
   <forward 
     name="login" 
     contextRelative="true" 
     path="/login/Login.do" 
     redirect="true"/> 
 </action> 

另一切换模块的方法就是使用SwitchAction,它需要在请求中带两个参数,一个是prefix,用来指定模块前缀名称,一个是page,用来指定相对于模块的资源路径,例如我们可以这么设定:
代码:
 <action-mappings> 
   <action 
    path="/LoginSwitch" 
    type="org.apache.struts.actions.SwitchAction"/>    
 </action-mappings> 

之后我们可以使用这样的路径与参数来请求login模块的Login.do:
http://localhost:8080/HelloStruts/LoginSwitch.do?prefix=/login&page=/Login.do
分享到:
评论

相关推荐

    ActionForward与ForwardAction的功能

    【ActionForward与ForwardAction的功能】 在Java EE的Struts框架中,ActionForward和ForwardAction是两个重要的概念,它们主要用于处理用户请求并控制应用程序的流程。理解这两个组件的功能和使用方式对于构建基于...

    深入struts1核心思想.doc

    - **IncludeAction**:与ForwardAction类似,但它是引入资源而不是转发,这通常用于在同一个页面中动态包含其他内容。 8. **其他规则**: - `SetNextRule`:设置下一个对象的引用,通常用于管理对象间的父子关系...

    JAVA面试题SSH重点.pdf

    - Struts框架中的Action是处理用户请求的核心组件,有多种类型,如普通Action、SwitchAction、IncludeAction、ForwardAction、DispatchAction、MappingDispatchAction,每种都有特定的用途。 3. **Hibernate HQL与...

    struts1跳转大全

    仅有Form的action通常使用`org.apache.struts.actions.ForwardAction`作为action类型,这意呀着不会执行任何自定义的业务逻辑。例如: ```xml &lt;action path="/aFormOnlyAction" type="org.apache.struts.actions....

    我的笔记:Struts构架中action的跳转大全

    这里使用的是`org.apache.struts.actions.ForwardAction`,这种Action仅用于表单提交后的页面跳转。当表单提交后,如果没有验证错误,则直接跳转到`/result.jsp`。如果有验证错误,则返回到`/form.jsp`以便用户修改...

    整合Struts_Hibernate_Spring应用开发详解

    - **使用SwitchAction:** 基于条件选择Action执行。 - **Struts的常见扩展方法** - **实现PlugIn接口:** 自定义插件扩展框架功能。 - **继承RequestProcessor:** 对请求处理过程进行扩展。 - **继承Action...

    学习struts很好的文档

    - **IncludeAction**:用于包含其他资源。 - **DispatchAction**:用于分发请求到不同的方法。 - **LookupDispatchAction**:用于查找和分发请求。 - **SwitchAction**:基于条件进行分发。 ##### 4.ActionForward...

    一个struts的action跳转大全

    当请求路径为`/aFormOnlyAction`时,会使用`org.apache.struts.actions.ForwardAction`作为Action处理类。在这种情况下,通常不包含自定义逻辑处理,而是简单地根据`parameter`属性值进行页面跳转。如果表单验证...

    《轻量级J2EE企业应用实践-tructs+sping+hibernate整合开发》

    `ForwardAction`通常用于将用户请求转发到一个指定的JSP页面或Servlet,而`DispatchAction`则允许根据不同的请求参数执行不同的业务逻辑,提高了代码的复用性。 Spring框架是Java企业级应用的核心组件,它提供了...

    第一个struts成功例子

    `&lt;action&gt;` 元素中的 `path="/Welcome"` 指定 URL `/Welcome.do` 将被映射到 `org.apache.struts.actions.ForwardAction` 类,`parameter="/pages/Wel...` 表示请求处理完成后,页面将转向 `/pages/Wel...`。...

    struts高级日记

    `ForwardAction` 是 Struts 中的一个特殊 Action 类型,主要用于页面跳转。它可以通过配置文件 `struts-config.xml` 指定具体的 JSP 页面作为转发目标。例如: ```xml type="org.apache.struts.actions....

    Struts高级部分(2)(常用Action、验证框架、动态Form)笔记

    1. **ForwardAction**: ForwardAction的作用是定义一个逻辑路径到具体的JSP页面。通过配置,我们可以给JSP文件分配一个逻辑名称,而不是直接引用它们。这样可以提高代码的可维护性,尤其是在将所有JSP文件放在WEB-...

    Struts之进阶篇.pdf

    - **IncludeAction**:通过包含的方式响应用户请求,而不是完全转发到新的页面。 - **LocaleAction**:处理国际化相关的问题,如语言切换。 - **DownloadAction**:用于处理文件下载操作。 通过了解这些高级特性,...

    Struts1.3 备忘笔记

    07 Struts_07ForwardAction : 访问WebRoot/WEB-INF/下文件的一种方式 08 Struts_08DynaValidatorForm : Struts框架的Validator验证框架 09 Struts_09Token : Structs的令牌机制,避免重复提交问题 10 Struts_10...

    jfinal自学笔记

    验证成功后,`save` 方法保存数据,并通过 `forwardAction` 跳转到 `/student`,这里无参数调用 `index` 方法。`index` 方法可能设置了视图数据,如获取学生列表并传递给视图: ```java @Before...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail简介及配置 18.1.3、发送普通邮件 18.1.4、发送带...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail简介及配置 18.1.3、发送普通邮件 18.1.4、...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 18.1.2、JavaMail简介及配置 18.1.3、发送普通邮件 18.1.4、发送带...

Global site tag (gtag.js) - Google Analytics