1.默认action,在struts2中,可以为所有action请求配置一个默认的action处理类,当该action请求没有找到匹配的action请求后,将会调用默认的action。这时只需要在struts.xml配置文件中做如下配置即可:
<package name="default" namespace="/action" extends="struts-default">
<default-action-ref name="input"></default-action-ref>
<action name="input"
class="cn.itcast.action.MyAction5"
method="execute"
>
<result name="success">
/WEB-INF/jsp/success1.jsp
</result>
<result name="error">
/WEB-INF/jsp/error.jsp
</result>
</action>
</package>
这时在URL请求地址中输入如下url:
http://localhost:8080/Struts2_002/action/xxxx/sss
http://localhost:8080/Struts2_002/action/xxxx/
http://localhost:8080/Struts2_002/action/
它都在struts.xml中对应的namespace的package配置中找不到对应的action,这时它将使用此package配置中的默认action. 即input action。
2.include标签,在struts.xml文件中可以使用include标签来包含其它的.xml配置文件,这样有利于并发的模块开发。也有利于配置文件的管理及系统的模块化管理。下面是一个使用此include的示例,在实际项目开发中,struts.xml一般用于配置各模块通用配置及一些系统配置,而其它模块的配置一般采用include方法来包含进来:
<struts>
<!-- 指定devMode为开发模式,即每修改一处配置后,无须重新发布web应用,即可生效 -->
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<include file="login.xml"/>
<!-- Add packages here -->
</struts>
login.xml配置如下:
<struts>
<!-- 指定devMode为开发模式,即每修改一处配置后,无须重新发布web应用,即可生效 -->
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<include file="login.xml"/>
<!-- namespace指定命名空间 -->
<package name="default" namespace="/action" extends="struts-default">
<default-action-ref name="input"></default-action-ref>
<action name="input"
class="cn.itcast.action.MyAction5"
method="execute"
>
<result name="success">
/WEB-INF/jsp/success1.jsp
</result>
<result name="error">
/WEB-INF/jsp/error.jsp
</result>
</action>
<action name="loginAction"
class="cn.itcast.action.MyAction2"
>
<result name="success">
/WEB-INF/jsp/success.jsp
</result>
<result name="error">
/WEB-INF/jsp/error.jsp
</result>
</action>
<!-- 它是一个通用的action,*为通配符,当从浏览器地址栏解析uri地址,并通过namespace解析
获取到了对应的action名称后,将在struts中查询对应的配置。找到后将调转到result指定的
显示页面。 -->
<action name="*Action">
<result>
/WEB-INF/jsp/{1}.jsp
</result>
</action>
</package>
<!-- Add packages here -->
</struts>