Struts2中Namespace的使用

一、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的容错性进行开发。推荐尽量不要出错。

你可能感兴趣的:(Struts2中Namespace的使用)