struts.xml配置同名action测试

这几天开始看struts2的一些东西,试着做了几个简单的action,在配置struts.xml 时发现package有几个属性不太懂的,name,namespace,extends,abstract,这几个是比较常用的,百度google了一下,自己又测试了一下,大概明白了。

1.name 包的名称,和java的包有点像,我只发现在继承的时候用到了,具体还不知道什么用;

2.abstract 是指定是否是抽象的,抽象包?呵呵,也许吧。默认都是false;

3.extends,和java的继承好像同一个意思,就是继承了那个包,默认继承的是struts-default,在struts-core 的jar包可以看到 struts-default.xml 文件中,指定了一个包的名字是struts-default。一般就是继承的这个包;

4.namespace 命名空间,这个是实际访问action的路径,默认是"/",即根目录。

我有一个疑问就是,如果有两个同名的action的话,那么怎么区分呢?

办法1:通过namespace,不通的路径对应到同名的多个action,这样是可以的

办法2:我试图用包名来实现一下,结果发现不行,因为访问路径和包好像没关系,那么如果是不通的包下面,写了两个同名的action,而且他们的namespace也都是一样的,比如"/",那么,提交请求到action的时候,会选择哪一个呢?

通过实验发现,在不同的包下面把两个action的name设置成一样,处理请求的是第二个action;

然后我又测试在同一个包下面,把两个action的name设置为一样,处理请求的是第二个action;

那么我猜想,既然有同名,相同访问路径的action,并没有报错,那么访问的时候总是最后一个action,目前试验是这样的结果,不知道具体是什么原因呢,为什么会允许这种情况出现呢?

百度和google没有搜索到,群里面也没人回答我,希望早日解惑。加油!

 

 

转载于:https://www.cnblogs.com/ofyou/archive/2012/04/24/2467980.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值