Struts 2でのNamespaceの使用

1981 ワード

一、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)struts 2によるネーミングスペースの許容誤差
        入力するとhttp://kevin.mshome.net:8080/test1/aaa/bbb/ccc/index.actionを選択すると、正常にアクセスできることがわかります.これはstruts 2がネーミング空間の処理に一定の誤り許容性を有するためである.
        しかし,strutsのフォールトトレランスを用いた開発は推奨されない.なるべくミスをしないことをお勧めします.