Когда я пишу действие по умолчанию в файле 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>

Я не знаю, что происходит с ошибкой, которую показывает ошибка. Содержимое типа элемента «пакет» должно соответствовать «(типы результатов?, перехватчики?, ссылка-перехватчика-по умолчанию?, ссылка-действия-по умолчанию?, ссылка-класса по умолчанию? ,глобальные-результаты?,глобальные-отображения-исключений?,действие*)". Пожалуйста, поправьте меня


person Symon Kt    schedule 08.10.2015    source источник
comment
Дубликат: stackoverflow.com/q/3742379/1700321.   -  person Aleksandr M    schedule 08.10.2015
comment
Я следую этому порядку, сэр, вы его проверяете.   -  person Symon Kt    schedule 08.10.2015
comment
Как сэр? Пожалуйста, помогите мне   -  person Symon Kt    schedule 08.10.2015
comment
Вы начинаете с default-action-ref, это должно быть ближе к концу... серьезно, просто проверьте порядок в других вопросах и ответах :|   -  person Andrea Ligios    schedule 08.10.2015


Ответы (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>
person David Gorsline    schedule 08.10.2015