struts2默认action设置了却访问不到

1、错误原因

  我的package中共有两个action,第一个是默认action,用于访问的action不存在时候的出错处理,第二个是通配符方式写的action,name采用*_*形式的全通配符。配置好了,访问默认action时候会报错,但如果第二个action的class属性的包名中也包含通配符,如调整之后的代码中的{3},就可以正常访问默认action,不知道什么原因,估计是bug。

2、出错时候的struts.xml的package部分代码

<struts>
    <package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
        <!--默认action的使用:当用户要访问的action有误的时候自动跳转到该页面-->
        <default-action-ref name="index" />
        <action name="index">
            <result>/error.jsp</result>
        </action>

        <action name="*_*" method="{2}" class="com.icheny.action.{1}Action">
            <result>/result.jsp</result>
            <result name="add">/{2}.jsp</result>
            <result name="update">/{2}.jsp</result>
        </action>
    </package>
</struts>

3、第二个action的class的包名中增加一个通配符之后的struts.xmlpackage部分代码

<package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
        <!--默认action的使用:当用户要访问的action有误的时候自动跳转到该页面-->
        <default-action-ref name="index" />
        <action name="index">
            <result>/error.jsp</result>
        </action>
       
        <action name="*_*_*" method="{2}" class="com.icheny.{3}.{1}Action">
            <result>/result.jsp</result>
            <result name="add">/{2}.jsp</result>
            <result name="update">/{2}.jsp</result>
        </action>
    </package>
原文地址:https://www.cnblogs.com/iCheny/p/10964282.html