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