Struts 2 默认的 action

如果请求一个不存在的action,结果将是HTTP404错误。在Struts2中,可以指定一个默认的action,如果一个请求没有其他的action匹配,那么默认的action将被执行。

默认的action使用default-action-ref元素来声明,如下所示:

<!-- 默认action --> <package name="defaultAction" namespace="/default" extends="struts-default"> <default-action-ref name="error"></default-action-ref> <action name="defaultaction" class="org.lesson05.DefaultAction"> <result name="success">/defaultAction.jsp</result> </action> <action name="error"> <result>/error.jsp</result> </action> </package>

注意:根据struts-2.0.dtd中定义的package元素的内容模型,default-acion-ref必须在action元素之前使用。

如果请求的是/default/defaultaction1.action,框架找不到映射到defaultaction1的action,那么名为error的action将被调用。

注意:每个包中都可以有它自己默认的action,但是每一个名称空间应该只有一个默认action。如果具有相同名称空间的多个包中都声明了默认action,那么哪一个action才是默认的将无法保证。

注意:默认action只对action的访问有效。如果你访问一个非action的资源,例如/user.jsp,而该页面不存在,这时仍会看到HTTP404错误。如果想为整个Web应用程序指定默认页面,需要在web.xml文件中对HTTP404错误指定相应的错误处理页面。