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>