您的位置:首页 > 编程语言 > Java开发

struts.xml配置同名action测试

2012-04-24 14:04 253 查看
这几天开始看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没有搜索到,群里面也没人回答我,希望早日解惑。加油!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: