系列文章目录
文章目录
前言
之前的项目再拷贝一份
这里也要改成
只保留学生的,,其它的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、要会写依赖注入,掌握同包和不同包的重定向和转发