看马士兵struts2视频bbs项目时他是这样说的,但自己测了以下不是,到底是还是不是?

解决方案 »

  1.   

    不是,只在当前namespace下找
      

  2.   

    是这样的.继承了,就会copy所有的.遵循临近原则,从内向外找,先找到那个就用那个..访问的时候,要写上子包的命名空间.
      

  3.   

    关于Struts2定位包和action的时候几个月以前我就详细说过一次!
    既然有同仁再次提到  就再说一遍吧!
    包一旦定位了, 就不会再追溯父包.! 只是在追溯包的时候,当前包不存在的话, 会往上级追溯!
    但是,包一旦定位,就会在当前定位了的包下面找你的Action, 找不到就是找不到, 不会再去父包找! 但是是不是这个时候就404了呢?  不是.!  有一个包, 叫默认包, 也可以叫全局包吧.! 就是你配置package的时候,namespace为空字符串(不要把根包跟默认包混淆), 当在你定位的包中找不到action的时候, 会去默认包找, 如果默认包也没有你要的, 那么就404!
    例如: http://ip:port/serverName/aaa/bbb/ccc/ddd/test.action
    这个时候,会去找/aaa/bbb/ccc/ddd这个包, 没有就找/aaa/bbb/ccc,依次下去,  一旦定位好包,就开始找action了.!  所以, 在struts2中,定义根包是没有太大意义的, 因为一旦有子包,就会被子包拦掉!