四种forward

2024-06-10 19:48
文章标签 四种 forward

本文主要是介绍四种forward,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Struts设置转向信息的时候,需要用到Forward。我们有四种不同的处理方式:

 

[html]  view plain copy print ?
  1.   <!--方式一、 全局转向信息,所有Action公用 -->  
  2. <global-forwards>  
  3.     <forward name="error" path="/mustLogin.jsp" />  
  4. </global-forwards>  
  5.   
  6. <action-mappings>  
  7.      <!--方式二、 直接转向,不牵扯到action,完全交给Struts控制-->  
  8.     <action path="/showLoginWithForward" forward="/index.jsp" />  
  9.   
  10.        <!--方式三、 利用Struts提供的ForwardAction转向,转向信息放在parameter中 -->  
  11.     <action path="/showLoginWithForwardAction" type="org.apache.struts.actions.ForwardAction"  
  12.         parameter="/index.jsp" />  
  13.           
  14.        <!--方式四、forward作为action子元素完成转向 -->  
  15.     <action path="/showLoginWithChildForward" type="com.jialin.struts.TestAction">  
  16.         <forward name="success" path="/index.jsp"></forward>  
  17.     </action>  
  18.       
  19. </action-mappings>  

 

这几种方式有什么区别?


1、方式一的forward的是全局共享的,所有Action都可以使用,而其余三种方式只有相应的action才能使用

2、方式二仅仅起到一个转向的作用,完全由struts控制,很方便,但是我们不方便加入自定义的操作,除非重写struts框架中的类的方法。

3、方法三和方法四,最大的区别在方式三不用我们自己写action了,它用的是Struts已经写好的action。需要注意的是,无论ActionForward还是我们自定义的action都是继承自Struts的核心类Action

那么,既然有自定义的action,为什么需要ForwardAction?
*目的是发出一个RequestDispatcher转发
*ForwardAction的绝大多数使用是作为Action的占位符
*ForwardAction创建一个请求分派器,并根据ActionMapping提供的上下文相关的URI转发控制
*许多 Struts 开发人员避免从一个页面直接连接到其他地方而是通过Action 或者 ActionForward来传递控制。这保证了工作流在Struts 配置的控制之下,在这里可以进行集中管理。
*然而,许多页面并不需要特殊的预处理(至少还不需要)。如果为这些页面创建ActionMapping,你可以使用ForwardAction,来仅进行路由控制。如果以后,需求改变,又需要进行预处理,你可以改变mapping 来为那个页面引用到一个Action。因为链接是引用到mapping, 而不是Action类, 所以你可以修改Action类而不用改变链接。

 

4、如果同时存在一个action标签同时存在forward属性,又存在forward子元素,那么前者优先,不会执行到自定义action的exceute方法。

在Struts核心类,RequestProcessor的方法process中,我们看到

  // Process a forward or include specified by this mapping
        if (!processForward(request, response, mapping)) {
            return;
        }

如果存在forward的属性,就直接返回了,不再向下执行了,不会调到我们自定义action的exceute方法。

我们如果要做一些自己的事,就必须用forward的子元素的方式,而不能用forward属性的方式。

这篇关于四种forward的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049102

相关文章

线程的四种操作

所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

【Oracle篇】全面理解优化器和SQL语句的解析步骤(含执行计划的详细分析和四种查看方式)(第二篇,总共七篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️ 💖💖💖大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注💖💖💖 SQL优化续新篇,第二篇章启幕时。 优化器内藏奥秘,解析SQL步

常见的四种排序算法

常见的四种排序算法,至于其原理我就不在这里描述了,不懂原理的可以自己去百度,下面直接给出代码。 void BubbleSort(int a[], int size, int order) //order为1代表升序,冒泡排序算法 { int i, j; for(i=0;i<size-1;i++) { for(j=0;j<size-i-1;j++) { if((

java grpc四种模式介绍

GRPC功能 一.GRPC的响应模式 1.GRPC的四种响应模式 (1)UNARY(简单模式) 也称简单 RPC,即客户端发起一次请求,服务端响应处理后返回一个结果给客户端。 (2) SERVER_STREAMING(服务端流模式) 客户端发起一次请求,服务端可以连续返回数据流(即分批次返回场景)。 (3)CLIENT_STREAMING(客户端流模式) 服务端数据流模式相反,客户

职场关系课:团队坚决不能留的四种人(背叛者、搅局者、吸血鬼、吃白食者)

文章目录 引言I 团队坚决不能留的四种人背叛者搅局者吸血鬼吃白食者 II 和下属解约,追求的目标 引言 作为领导,不论好坏一视同仁是假公平,勤奋忠诚的员工们会很委屈,剔除害群之马,才是对好员工最大的尊重。 如果发现员工有背叛或者搅局的恶习,不要耽搁,你要赶紧解约。发现谁有吸血或者吃白食的兆头,你提示一次,最多两次已经足够。如果不改,那他就是禀性难移,也要趁早遣散。 过多的批评、

分布式事务 四种方案

简述 分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。 例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。 解决方案 在分布式系统中,要实现分布式事务,无外乎那几种解决方案。 一、两阶段提交(2PC) 两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是

PHP文件之间传值的四种方式说明

一. POST传值 post传值是用于html的<form>表单跳转的方法,很方便使用。例如: <span style="font-size:18px;"><html><form action='' method=''><input type='text' name='name1'><input type='hidden' name='name2' value='value'><input t

【C++】【学习笔记】/*函数声明的四种方式*/

#include <iostream>#include <string>using namespace std;/*函数声明的四种方式*///纯净版函数声明string ( &func() )[10];// 上述声明的含义是:// func() 表示func函数无需任何实参// ( &func() ) 表示函数的返回结果是一个引用// ( &func() )[10]表示引用

iOS的四种方法读取文件内容

//第一种方法: NSFileManager实例方法读取数据NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);NSString* thepath = [paths lastObject];thepath = [thepath stringByAppendin

前向保密(Forward Secrecy,也称为完美前向保密,Perfect Forward Secrecy,PFS)

前向保密(Forward Secrecy,也称为完美前向保密,Perfect Forward Secrecy,PFS)是一种加密通信协议的属性,它确保即使在未来某个时间点上长期使用的私钥(如服务器的私钥)被泄露,攻击者也无法解密之前已经捕获并记录的加密通信内容。这意味着每次通信会话都使用一个独立的、临时的会话密钥进行加密,即使主私钥被泄露,之前的通信记录也仍然保持安全。 工作原理 前向保密通常