Java三大框架SSH_002_03之Struts2:配置文件Action元素-动态方法的调用、配置文件result元素-转发和重定向、同一个包和不同包、依赖注入、type类型

系列文章目录

前言

之前的项目再拷贝一份
在这里插入图片描述
在这里插入图片描述
这里也要改成
在这里插入图片描述
只保留学生的,,其它的jsp都不要了
在这里插入图片描述

一、动态方法的调用

在这里插入图片描述
在这里插入图片描述
所以我们第一步要在struts.xml里面配错它为true
第二步配置action,这样就行了
在这里插入图片描述
在这里插入图片描述
动态方法调用delete也是一样的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、result元素-转发和重定向

同样的,项目拷贝一下demo4了,最终变成这样子
在这里插入图片描述
result元素,是什么呢?
为动作指定结果视图,也就是指定跳转到哪个页面
在这里插入图片描述
在这里插入图片描述
type属性这里我们没有写,默认就是转发(dispatcher),转发的地址栏不变
在这里插入图片描述
在这里定义了 type 有那些值
在这里插入图片描述

1.转发(dispatcher——默认)

在这里插入图片描述

2.重定向(redirect)

重定向路径就会变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置文件result元素-转发和重定向

我们再继续探讨除了转发和重定向以外的
dispatcher:转发到一个页面,默认值
redirect:重定向到一个页面
chain
redirectAction

那么chain 和上面的dispatcher都是转发,但是它们有什么不一样地方呢?

很简单:dispatcher是转发到一个页面,即.jsp
而chain是转发到一个action
redirect重定向和redirectAction 也是一样的道理
如果我们前面的struts.xml配置文件里面配置成chain会怎么样?注意是不可以的
在这里插入图片描述

下面我们看chain 和redirectAction 的实例:
既然是跳转到一个action,那我们就得先有action
在这里插入图片描述
什么都不写,默认会执行execute方法
然后再新建一个jsp

在这里插入图片描述
然后就是最后一步,在struts.xml里面配置action了,这样加上之后就已经可以访问了
在这里插入图片描述
现在我们想做什么呢?我们想访问action1,然后让它自动帮我们转到访问action2
在这里插入图片描述
chain是上面那样
redirectAction,也是同理,会改变URL地址,我们发现并且默认帮我们加了后缀
在这里插入图片描述
我们在研究一下,发现现在他们是在同一个包下,如果不同包,能够跳转吗?

如果不同包

如下 action1去访问action3,他们是不同的包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为规则不是我们想当然的这样,我们需要去底层找到解决办法
在这里插入图片描述
在这里插入图片描述
我们可以得知是由它完成的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下我们发现,它是要加上参数

在这里插入图片描述
在这里插入图片描述
这种写法就叫做依赖注入
测试一下,完美
在这里插入图片描述

总结

1、 1.result的name可以不写,默认就是success
2.type属性
dispatcher:转发到一个页面,默认值
redirect:重定向到一个页面
chain:转发到另一个action(相同的包或者不同的包都可以)
redirectAction:重定向到另一个action(相同的包或者不同的包都可以)

2、如果本身就是默认值,比如本身就是转发,完全可以省略不写,没有必要再写了,在实际开发中也是如此
3、要会写依赖注入,掌握同包和不同包的重定向和转发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值