Когда я пишу действие по умолчанию в моем Struts.xml происходит ошибка в Struts

Это мой код

struts.xml

        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
            "http://struts.apache.org/dtds/struts-2.1.dtd">

         <!-- ********************************************************** -->   

        <struts>

         <!-- ********************************************************** -->

            <constant name="struts.enable.DynamicMethodInvocation" value="false" />
            <constant name="struts.devMode" value="true" />

         <!-- ********************************************************** -->

            <package name="default" extends="struts-default">

        <!-- *****************DEFAULT ACTION STARTS********************* -->        
                <default-action-ref name="somedefault" />

                <!-- ******************************* --> 

                <action name="somedefault">
                <result>/jsp/DefaultPage.jsp</result>
                </action>


        <!-- *****************DEFAULT ACTION ENDS********************* -->      

        <!-- *****************GLOBAL RESULTS STARTS********************* -->

                <global-results>

                      <result name="null">/jsp/Fail1.jsp</result>
                      <result name="excep">/jsp/Fail2.jsp</result>

                </global-results>

        <!-- ******************GLOBAL RESULTS ENDS********************** -->        

        <!-- *************GLOBAL EXCEPTION MAPPING STARTS*************** -->    

                <global-exception-mappings>

                      <exception-mapping result="null" exception="java.lang.NullPointerException" />              
                      <exception-mapping result="excep" exception="java.lang.Exception" />

                </global-exception-mappings>

        <!-- **************GLOBAL EXCEPTION MAPPING ENDS***************** -->   

        <!-- ******************OTHER ACTION STARTS*********************** -->

                <action name="Calculator" class="com.action.Calculator">

                    <exception-mapping result="error" exception="java.lang.NumberFormatException" />
                    <exception-mapping result="none" exception="java.lang.NullPointerException" />       

                <result name="success">/jsp/Success.jsp</result>
                <result name="error">/jsp/Error.jsp</result>
                <result name="none">/jsp/Error1.jsp</result>

            </action>

                <!-- ************************************ -->       

                <action name="Action1" class="com.action.Action1">

                <result name="success">/jsp/Success1.jsp</result>

            </action>

                <!-- ************************************ -->

            <action name="Action2" class="com.action.Action2">

                <result name="success">/jsp/Success1.jsp</result>

            </action>       

        <!-- *********************OTHER ACTION ENDS********************** -->   

            </package>

        <!-- ************************************************************ -->   

        </struts>

Я не знаю, что происходит, когда появляется сообщение об ошибке. Содержимое элемента типа "пакет" должно совпадать "(тип-результата?, Перехватчики?, Default-interceptor-ref?, default-action-ref?, Default-class-ref?,global-results?,global-исключения-отображения?, действие *)". Пожалуйста поправьте меня

1 ответ

Решение

Переместите определение действия по умолчанию в раздел спецификации, где определены другие действия. Я удалил комментарии и изменил отступ, чтобы вы могли видеть элементы XML более четко.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
    "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <package name="default" extends="struts-default">
        <default-action-ref name="somedefault" />
        <global-results>
            <result name="null">/jsp/Fail1.jsp</result>
            <result name="excep">/jsp/Fail2.jsp</result>
        </global-results>
        <global-exception-mappings>
            <exception-mapping result="null" exception="java.lang.NullPointerException" />          
            <exception-mapping result="excep" exception="java.lang.Exception" />
        </global-exception-mappings>
        <action name="somedefault">
            <result>/jsp/DefaultPage.jsp</result>
        </action>
        <action name="Calculator" class="com.action.Calculator">
            <exception-mapping result="error" exception="java.lang.NumberFormatException" />
            <exception-mapping result="none" exception="java.lang.NullPointerException" />       
            <result name="success">/jsp/Success.jsp</result>
            <result name="error">/jsp/Error.jsp</result>
            <result name="none">/jsp/Error1.jsp</result>
        </action>
        <action name="Action1" class="com.action.Action1">
            <result name="success">/jsp/Success1.jsp</result>
        </action>
        <action name="Action2" class="com.action.Action2">
            <result name="success">/jsp/Success1.jsp</result>
        </action>       
    </package>
</struts>
Другие вопросы по тегам