00:00
我们来看一下这个。Result结果。那这个result我们在前面讲hello的时候呢,已经说过了,它是什么呀?Result首先是action的一个子节点。它代表着。执行完那个挨方法之后,可能去的一个目的地。啊,一边做笔记一边来说。5RESULT。第一个是。Action节点啊。子节点来。二专。Result。代表。Action方法执行后。可能去的一个目的地,那我执行完这个X方法之后,我根据这个业务的执行情况,我是不是可能有选择的去几个地儿啊,比方说哎,我要出异常的话,我去什么地儿,我不出异常的话,我去什么地儿。
01:16
呃,如果我交易这个额特别大的话,我去什么地儿啊等等等等,所以说一个。Action节点。可以配置多个result的节点。好了,第四个这边我们还知道的就是。的name属性值。对应着。Action方法。可能有的一个返回值啊,这些我们在前面都已经知道了。
02:02
好了,我们还是来举一个例子,简单说明一下哈。我们来。写一个best result。Action。我们来写一个X方法,我们就以这个XQ为例。看看结果。好了,现在的话呢,比方说它会传进一个参数。Private。那我现在又怎么样?就是根据这个请求参数number的值来决定着我可能返回哪个页面,看根据请求参数number的值,然后呢,返回对应的。DSP页面我们只是一个模拟的哈。类似于我们调用这个业务方法,根据业务方法的执行情况去什么页面,那我这样来写一说落。
03:07
Number是。三二整数啊,我就返回。一个。Success。啊,JSP页面好了。二说若。除以三。鱼。于一,得返回一个log in.GSP3。若。Number除以三于二,则返回X点。哎,我们能有这样的几个结果,好了,我们试一下吧。写一个string result,等于那我就返回这个。
04:08
呗。好了。If。Number。摩以三等于零。那我就让。等于比方说。都在哪DSP吗?再来else if。如果number以三等于一的话,我就让result等于返回的是一个。好了,否则呢,Else。我让result等于啊,比方说我这个呢,返回的是in X。呃,你光这样写的话,那我这块返回返回它了,你光这样写的话,我并不知道我去哪个页面,我们还需要怎么样,还需要为当前的action。
05:04
配置。三个result。找一个。过来。Result。Action。Best result plus。权利名。拿过来。要去掉哈,方法呢是默认的,我不用写了,好了,我们看可能有三个返回值,那我应该跟这个name对应吧,写上分别叫success,我去根目录下的success.JSP走。还可能是index,我就去。Indexp可能是。
06:07
Lock。我就去。Log JP OK,这样配就配完了,就是我们result的一个典型应用。这里边儿的话呢,有一个我们需要交代一下哈,我这个name呢,看上去是不是跟这个JSP这个名长得比较像啊,但实际上。这个name和这个JSP之间没有任何关系,你比方说我再写一个,哎,我写个这个,我随便写一个test,我这个可以叫abcd,而P问题。随便写,哎,就是我们result引擎应用我就不跑了哈,这个这个比较简单。拿过一个来,我看一下。零应用就是这样写啊,这个name呢。
07:02
可能是action方法的一个返回值。好了,我们要说。下一话题,下一话题是什么呀?半。这个result除了这个内幕属性以外,还有一个。Egg。表示。类型。表示可能。这个result除了这个内幕属性以外的话呢,还有一个APP属性。他表示,响应结果的类型。OK说一共有。两个属性,嗯,还有一个。
08:00
啊,是type。他表示。结果的。响应类型。它表示结果的两位型,好,这个type可以据哪些值呢?从哪儿看呢?我们这个ru defat X文件里边打开往下翻。我们默认继承了一个包。那个包叫。Ru default,你看在这块的话呢,定义了呃,这么多种结果类型。这里边儿最常用的有四个。Departure转发。默认取这个值,Redirect重定向。Direct action重定向到一个action。还有一个是train。
09:00
转发到一个action。那么我们在后边。做文件下载的时候呢,我们还会学到一个stream,嗯,其他的结果类型在我们后边做项目的时候,我们会我们会用得到。下面我们就逐一的来说这个结果类型。D、笔记。六。Result。太不熟悉。值在。Default。什么里边定义。Types result types的name值。Result times。Results节点的name属性中定义,然后说常用的。
10:02
有这样的几个。有。第这个是。默认的。取了一个值D,我们要是不配,我们要是不配这个。不去配置这个type的话,那么这个值就是,然后还有。Re。哎哟。Direct。Action还有。对,这是几个常用的,其他的话呢,我们到后边讲到的时候我们再说。外卖外,先看第一个dispat。叫转发。这个转发呢,就是我们学习的时候那个转发。那我们第二个也说了吧,第二叫什么呀?叫重定向,三个叫。
11:02
红定向报一个。Action。这个叫变道,转发到一个。实际上要是就从字面上看的话呢,很好理解。好,因为我们前面啊,已经有这个case result action这个例子了,所以说我们把每一个的话呢,都实验一下,这里边还是有一些值得我们注意的地方。第一个看转发。首先呢,靠我们这个test result action,我可能去一个success,还可能去login,还可能去index。那。要不的话,我们再写一个啊,让他还可能去另外一个地儿,那我们这个我们改为四吧。四这个是零。不是。
12:01
一的话呢,我们去log in。Else if。Number。所以四等于二的话。我们去这个index else,那我就return一个,刚才我们不是写了一个test吗。我们就去这个test。啊,那我们就让第一个,如果number值要是刚好是四整数倍的话,我就让他通过。转发的方式来这个success,那这个时候这个type啊可以不写,因为它的默认值就是。好,我们就写上吧啊。呃,这个写完,我首先我还需要写一个这个index,写个超链。
13:00
我们去的是。It's the result。点问号number等于。四。History out。好,我们看是不是转发过去的。那我还差个什么呀?我还差个页面呢,叫success JSP。新变一个。这个呢,这个标记是四。Success配置可以了,OK,走一个。Index。
14:03
走。我们用Chrome来看,用Chrome我们通过这个工具能看到什么呀。能看出来是不是发了一个请求。工具开发者工具。好,我来点这个test result。大家看到目标页面了吧,这个时候地址栏还是那个test result住,是不是只发了一个请求啊?这就是departure,就是转发。跟我们so里边讲那个转发是一样的,同。啊转发,所以说具体特性呢,我们就不说了。第二个redirect重定向,重定向我们看一下action哈,我让它这个于一的时候去这个log in使用重定向的方式。
15:04
回来漏音啊,我们把这个往上移一个吧。重定向这个的话呢,必须得配置一下type direct啊,重定向到这个页面。抖。Logp。一下。Age。好看效果。这块余一等于五就可以了,看。大家看这时候怎么样,是不到这个捞边点DSP了,而且这个地址栏发生变化,同时的话呢,我们从这个呃,开发工具这块,我们也可以看到是两个请求吧。所以说这就是重定向。这个的话呢,也没有什么特别需要讲的。
16:02
下面我们来讲第三个re action重定向到一个action。好,先打开我们的action,这个时候应该是余二的时候去这个index。打开。这个时候的话呢,我们需要改一下重定向到一个action。从定向到。一个。Action,好了,问题出来了,怎么写呀?哎,我们需要去找。To的文档。从那个里边,我们看如何来写。先找到抓兔的安装包一盘。Java。Open source。找到struts two2.3.15。打开。
17:02
Dogs。Dogs。应该去找index index HTML吧,他没有index HTML,它有一个什么呀,它有一个home。哎,这个有一个home的前面打开。好了。指南。按result type结果类型。我们找到。Direct action results。诶。它可以来添加一些参数,我们直接看例子哈,看可以带一个action name。就是你目标action的名字,还可以带一个name name space。运营空间。够体贴的吧,是吧。实际上的话呢,还有一个常用的参数就是这个P,这是跟OGNL相关的,我们讲OGL的时候的话呢,我们回过来再说。
18:02
好了,基本写法的话呢,我们已经了解了。回来。我来写一下吧。G。Action action,你去这个action哈。ARM name space写小写的。文档。Name space都是小写的action name啊,Name是大写的,我没写错哈,这个的话呢,我可以写一个比方说,呃,我叫艾硅谷。好了,你这样写的话呢,你必须得先证明一个包。Package。Name写成呃。Package。好了,这个names base1定要写成at硅谷,不怕我过不来呀。然后的话呢,我们来写一个action action的名字叫test action。
19:07
好,那我确实是去写一个action吧。这个是一个辅助的action action。Public to execute。Action的方法。好,Between一个。我就去CE页面了哈。配置一下。拿过来。结果类型呢?Result直接去登录下的success点。OK,看一下从定向到一个action啊,我有两个参数一个。
20:04
那就按这个名字都知道是吧,目标action的名字叫test action跟它对应。第二个叫SPA,指定目标,目标action所在的命名空间啊,At硅谷跟它对应,OK,找一个。保存。看一眼这个哈,就是余余二的时候。走。叫重定向到一个action回退。余二的时候应该写600。开发者工具。提一点。哦,回退。点它这块应该写几啊。写成。六。有问题。对。
21:00
回馈刷新。这个一毛都没来的话,说明什么呀,说明。我这个启动的时候就出问题了,看一下。什么问题啊说。没有这个结果类型往后翻。说也许。附包没有定义这个结果类型,那这肯定是stra to配置文件的问题。打开我们看,哎哟,这个派是怎么了,我没有继承这个副包对吧。Stress。写的着急哈。这个地方有问题,大家看到了吧。我重定向到一个action,忘写什么了,忘写type是re。Action最关键这个地方也忘记了,OK,重启再找。
22:06
刷首页。OK。走。这个值是六的时候看效果。OK,这个时候的话呢,我们到了这个目标,这个success success JSP,然后从底下看的话呢,也的确是两个请求,第一个请求是test result.do number等于六,第二个是。Test action调度重电线。控制台里边也打出了这样的一个字符串,没问题。这就是重定向到一个action。OK。大家会有什么别的想法吗?你或许会想,诶。我这块的话呢,我也有一个重定项。那我通过这样的方式能重定向到一个action吗?就是我们这个啊,写的有点复杂是吧,我能够通过这一行代码,这一行这个result的方式也重到这个action吗?我们试一下。
23:08
这个布条。专门写一个result。STEM是inex上面一样吗?Type effect要重定向到那个action,我写一个at硅谷。下边的。No。It'action。R。O。一哈。我们希望的是呢,这个爱的硅谷呢,指的是那个命名空间。那这个是那个重定向的action找一个。重启。再看。对,刷新。
24:01
Oh。得先回忆一下是吧,把这个改为六。大家看都可以成功啊,首先的话呢,也是一个重定向哈,到test result do,然后的话呢,我去的是呃at硅谷这命名空间下的test action点读这个的话呢,也可以打出来没问题,所以说我们来标示一个。这个需要注意的地方。通过。卫星。也可以便捷的实现direct。Action。这是一个重定向到一个action。C啊,这是我们一个需要注意的地方。
25:07
八最后一个。Chin转发到一个action。这个时候的话呢,应该是这个test啊。余数是三的时候。配置一下说转发到一个action。转发到一个。Action。结果类型。Tin。好了,里边这个写法呢,跟我们那个重名的一个action差不多,也是有啊action。Name。我们也叫test。Action。最大化就是底下这个哈,下一个。我们这个写成name base,斜杠at硅股。
26:04
嗯。配置完了试一下。重启服务器。打开。回退这个值取七的时候对吧。回撤,我们看这个时候呢,的确是到了目标页面,而且只发了一个请求,那下面我们关心什么呀,关心是不是打这句话吧,打印了吧,啊这个时候就是重定向到一个action。没问题。好,那我们可能又会有一个问题,什么问题啊,我既然能够转发到一个action,我也可以使用类似的方式重定向到一个action吗?
27:02
来,我们试试。我想说,通过便捷的方式,能不能从定向到一个action呢?写同定向到一个action保存试试。服T。风气。好了,继续刷。大家看这个说什么了,这个时候的话呢,失败了。这说明。我们不能通过,嗯。的方式转发到一个action。不能通过APP等于。方式。转发到一个。
28:00
Action这个呢,跟我们那个重定向的一个action啊,形成了一个鲜明的对比,是我们需要注意的一个地方。这个可以,而这个不可以,我把这个代码来粘贴一下啊大话。可以打开,可以这样写。TRC叫从定向到一个action。Who?这种方式也可以。从定向到一个action复制错了是吧。同定向到一个action应该是他。或者是这个。C。那项目而转发的话呢,只能是他。
29:00
只能是。转发到一个action,只能是这个。不能是。不行,不去。好,以上的话呢,就是我们讲的最常用的四种。结果类型,那其他的这个结果类型的话呢,我们在后边再逐一的跟大家介绍。
我来说两句