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