struts2的处理流程

用户请求后,filter拦截请求,匹配请求然后经过struts2的拦截器,在进入action,在Action中处理,然后返回return result返回。

struts1与struts2的不同:struts2为用户的每一次请求都会创建一个Action,所以struts2中的Action是线程安全;struts1的Action创建之后放在了缓存中,一直存在,只有一个实例。

为了避免struts.xml文件过于大而臃肿,可以将一个struts.xml配置文件分解成多个配置文件,然后再struts.xml文件中包含其他配置文件。

<include file="struts-user.xml"/>

通常可以将struts2的Action按模块添加在多个配置文件中。

在struts2中实现通过url传递的参数来执行Action中的方法,使用动态方法调用,即在action名称后加上“!”和要执行的方法例如:list!addUI.action

在struts中加上常量配置:

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

其中value的值为false,那么表示不支持动态方法调用。

<action name="list_*" class="com.HelloWordAction" method="{1}">

     <result name="success">/WEB-INF/pages/{2}.jsp</result>

</action>

原文地址:https://www.cnblogs.com/jinzhengquan/p/1963243.html