1)如果启动WEB服务器的时候报错误 Action class [Test] not found - action ,可能是因为Spring的配置文件没有加载上,例如web.xml中写:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
那么它只会加载applicationContext-bsp.xml之类的,不会加载applicationContext.xml。
2)若果报错误java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [test]
则有可能Test.action 中返回的页面找不到,如写的return "SUCCESS", 但是在struts.xml中配置的是"success"
3)如果在浏览器中访问Action时报错误 Unable to instantiate Action, test, defined for 'test' in namespace '/zy'test
则同样有可能是1)中的错误
4)如果想把访问*.action 改成 *.ac 的话,可以在struts.xml中添加
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="GBK" />
<constant name="struts.action.extension" value="ac" /> //这里
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources*,errors" />
<constant name="struts.multipart.parser" value="jakarta"/>
<constant name="struts.codebehind.pathPrefix" value="/WEB-INF/pages/" />
<constant name="struts.enable.SlashesInActionNames" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.objectFactory.spring.autoWire" value="name" />
<constant name="struts.ui.theme" value="css_xhtml" />
<constant name="struts.multipart.maxSize" value="40000000000000" />
5) 在不同的包中可以有相同的类名,例如有两个Spring的配置文件:
a配置文件:<bean id="simsCaseinfoAction" class="ie.sims.basic.cases.action.SimsCaseinfoAction" scope="prototype">
b配置文件::<bean id="simsCaseinfoAction" class="ie.sims.basicFever.cases.action.SimsCaseinfoAction" scope="prototype">
中id不能重复,否则b配置文件注入的id的Action会把前一个Spring注入的给覆盖掉。
6)$("#myform").attr("action","<%=request.getContextPath%>/basic/samples/sampleManage_detectParentSubmit.ac");
不能是/basic/samples/sampleManage_detectParentSubmit.ac ,否则会找不到页面。可以换成sampleManage_detectParentSubmit.ac
7) redirect和redirectAction区别
<result name="success" type="redirect">A.action</result>可以写成<result name="success" type="redirect">/user/A.action</result> 但是不能写成<result name="success" type="redirectAction">/user/A.action</result> 因为这样的话URL地址会变成/user/user/A.action ,就会报找不到找不到Action
8)<c:url value="<%=request.getContextPath()%>/basic/samples/qrySampleManage.ac"/>
这样写会报错误,应该把<%=request.getContextPath()%>去掉。
9) java.lang.ClassNotFoundException 表示找不到该类,有可能是该类没有编译成功(如缺少JAR包),有可能是该类已经改名字了,而有的地方仍引用的是原类的名字,例如web.xml中。