作用:减少action数量
使用:actionName!methodName.action
禁用:将属性struts.enable.DynamicMethodInvocation = true设置成为false
法一:
使用:actionName!methodName.action
<action name="user" class="com.cn.action.UserAction" namespace="/">
<result name="success">/pages/success.jsp</result>
</action>
法二:通配符
动态调用
<action name="house_*" class="com.house.houseAction" method="{1}">
<result>/pages/{1}suc.jsp</result>
</action>
默认action:
<default-action-ref name=”defaultAction”>
<package name=”default” extends=”struts-default”>
<action name=”defaultAction”>
<result>error.jsp</result>
</action></package>
Result配置
常用配置
Dispatcher:默认,后台使用requestDispatch请求转发方式
Redirect:后台使用sendRedirect重定向
Chain:使用请求转发转发给Action
RedirectAction:重定向到Action(action前不加 / )
全局配置:
全局结果满足一个包中多个action共享一个结果
<global-results>
package配置
三个属性:
Extends:当前包所要继承的父包,继承之后当前包拥有父包所定义的任意类、拦截器等
Name:包名称,具有唯一性,只用来让别的包继承时使用
Namespace:包中action请求的命名路径
Struts2深入拦截器
核心过滤器:
拦截器:和过滤器的机制是一样的,都是在执行前和执行后运行的组件,但是拦截器仅仅作用于action~!
Struts2将核心功能放在拦截器中,每个拦截器完成一些功能,自由组合
拦截器方法是在action执行之前和之后执行
拦截器栈:
是多个拦截器的组合
流程是:request--》struts核心拦截器--》拦截器1--》拦截器2--》action--》request--》拦截器2--》拦截器1--》核心拦截器--》response
实现的两种方式:
继承AbstractInterceptor;
继承MethodFilterInterceptor