一、NameSpace介绍
在struts.xml中,配置的时候,可能会遇到不同包中action名字冲突的问题,这个时候就需要用到namespace来解决命名冲突。
二、Namespace作用
解决命名冲突。
三、Namespace配置示例
在struts.xml中,默认我们配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="*">
<result>
/{1}.jsp
</result>
</action>
</package>
<!-- Add packages here -->
</struts>
我们将
<package name="default" namespace="/" extends="struts-default">
改为
<package name="default" namespace="/aaa/bbb" extends="struts-default">
这时候加上命名空间就可以访问了,形如:
http://kevin.mshome.net:8080/test1/aaa/bbb/index.action
四、知识扩展
(1)struts2对命名空间的容错性
当我们输入http://kevin.mshome.net:8080/test1/aaa/bbb/ccc/index.action时,发现也可以正常访问。这是由于struts2对命名空间的处理有一定的容错性。
但是不推荐我们在开发中利用struts的容错性进行开发。推荐尽量不要出错。