为什么struts.xml有配置错误?

Joe*_*Joe 3 xml eclipse configuration struts struts2

我在文件中收到配置错误 struts.xml

错误

The content of element type "package" must match "
(result-types?,interceptors?,default-interceptor-ref?,
default-action-  ref?,default-class-ref?,global-results?,
global-exception-mappings?,action*)".
Run Code Online (Sandbox Code Playgroud)

错误描述是什么意思?

在struts.xml

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

<struts>

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

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

        <global-results>
            <result name="securityerror">/securityerror.jsp</result>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping
                exception="org.apache.struts.register.exceptions.SecurityBreachException"
                result="securityerror" />
            <exception-mapping exception="java.lang.Exception"
                result="error" />
        </global-exception-mappings>

        <interceptors>
            <interceptor-stack name="appDefaultStack">
                <interceptor-ref name="defaultStack">
                    <param name="exception.logEnabled">true</param>
                    <param name="exception.logLevel">ERROR</param>
                </interceptor-ref>
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="appDefaultStack" />

        <action name="actionspecificexception" class="org.apache.struts.register.action.Register"
            method="throwSecurityException">
            <exception-mapping
                exception="org.apache.struts.register.exceptions.SecurityBreachException"
                result="login" />
            <result>/register.jsp</result>
            <result name="login">/login.jsp</result>
        </action>

        <action name="index">
            <result>/index.jsp</result>
        </action>

        <!-- If the URL is hello.action the call the execute method of class HelloWorldAction. 
            If the result returned by the execute method is success render the HelloWorld.jsp -->
        <action name="hello"
            class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
            <result name="success">/HelloWorld.jsp</result>
        </action>

        <action name="register" class="org.apache.struts.register.action.Register"
            method="execute">
            <result name="success">/thankyou.jsp</result>
            <result name="input">/register.jsp</result>
        </action>

        <action name="registerInput" class="org.apache.struts.register.action.Register"
            method="input">
            <result name="input">/register.jsp</result>
        </action>

    </package>

</struts>
Run Code Online (Sandbox Code Playgroud)

gre*_*449 5

错误告诉您内容的package顺序错误.例如interceptors必须来之前global-results.

对元素重新排序以匹配消息中显示的顺序.

struts.xml中的顺序很重要:

  1. 结果类型?
  2. 拦截器?
  3. 默认拦截-REF?
  4. default-action- ref?
  5. 缺省类-REF?
  6. 全局的结果吗?
  7. 全球异常映射?
  8. 行动*