Struts2通配符找不到ation

0

好久没有手动配置新项目了,因为以前我都是直接/*拦截的,现在改为*.do了,于是乎今天弄了半天Struts。

贴一下大概的配置(web.xml):

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.do</url-pattern>
</filter-mapping>

struts.xml:

<package name="commonweb" extends="struts-default,json-default" namespace="/">
    <action name="*/*" class="{1}Action" method="{2}">
        <result name="tojsp">${target}.jsp</result>
        <result name="tohtml">${target}.html</result>
        <result name="topage">${target}</result>
        <result name="tourl" type="redirect">${target}</result>
        <result name="toftl" type="freemarker">${target}.ftl</result>
        <result name="success" type="json">
            <param name="root">result</param>
        </result>
    </action>
</package>

访问xx/xx.do,可是什么反应都没有,一直找不到action,于是我把web.xml*.do改成/*,可以访问,于是我各种改啊。我一直以为是我的通配符有错误,google也找不到答案,最后就找了很久以前学习的时候的一个项目终于是让我找到了。

解决办法就是在struts.xml里面配置:

<constant name="struts.action.extension" value="do"/>

Done