strtus.xml中根命名空间和默认命名空间的区别

来源:互联网 发布:mac命令行连接mysql 编辑:程序博客网 时间:2024/05/12 02:05

配置<package>包时,有一个可选的namespace属性,用于指定该包对应的命名空间。若没有指定namespace属性,则该包下的所有Action处于认命名空间下。


根命名空间是指namespace="/",默认命名空间为 namespace=""。


假如有一个请求为/login.action,系统会在根命名空间(“/”)中查找名为login的Action,如果找到了名为login的Action,则由该Action处理请求,否则,系统将转到默认命名空间中查找名为login的Action,如果存在此Action,则由该Action处理请求,否则,系统报错


再假如,有一个请求为/User/login.action,而根命名空间下同样有login.action,系统会先在/User命名空间里查找名为login的Action,如果找到了名为login的Action,则由该Action处理请求,否则,系统将转到默认命名空间中查找名为login的Action,如果存在此Action,则由该Action处理请求,否则,系统报错。而不会从根命名空间查找Action。



这就是根命名空间和默认命名空间的区别


默认命名空间下的Action能处理其他命名空间中找不到的Action请求,而根命名空间下的Action只能处理根命名空间下的Action请求。


通俗点来讲,根命名空间和一般的命名空间没什么差别,只是大家被形式上面误导了。

2 0
原创粉丝点击