在项目中,需要在输入错误的url的时候,弹出友好的错误提示页面
在struts2中可以通过配置默认的action达到这个目的
配置方法:
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/jsp/error.jsp</result>
</action>
<action name="HelloWorld_*" method="{1}" class="com.venn.action.HelloWorldAction">
<result>/jsp/test.jsp</result>
<result name="add">/jsp/{1}.jsp</result>
<result name="update">/jsp/{1}.jsp</result>
</action>
</package>
在使用全通配符的配置中,会抛出找不到Action异常,不进如默认action(我遇到的是这样的),不能使用
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/jsp/error.jsp</result>
</action>
<action name="*_*" method="{2}" class="com.venn.action.{1}Action">
<result>/jsp/test.jsp</result>
<result name="add">/jsp/{2}.jsp</result>
<result name="update">/jsp/{2}.jsp</result>
</action>
</package>
但是如果把包名也用通配符代替,就不会出错,令人费解。。可以使用
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/jsp/error.jsp</result>
</action>
<action name="*_*_*" method="{2}" class="com.venn.{3}.{1}Action">
<result>/jsp/test.jsp</result>
<result name="add">/jsp/{2}.jsp</result>
<result name="update">/jsp/{2}.jsp</result>
</action>
</package>