1首先创建一个Maven项目 找到里面的pom.xml
4.0.0 com.zking struts2war 0.0.1-SNAPSHOT struts2 Maven Webapp http://maven.apache.org 4.13 4.0.1 2.5.10 junit junit4.13 test javax.servlet javax.servlet-api4.0.1 provided org.apache.struts struts2-core2.5.10 struts2 org.apache.maven.plugins maven-compiler-plugin3.7.0 1.8 1.8 UTF-8
2,打开webapp/WEB-INF/web.xml 配置核心过滤器
Archetype Created Web Application struts org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter struts *.action
3,新建一个xml,命名必须为struts.xml,建议每创建一个action都要对应一个xml
,在建一个xml,用来配置stuts2,此时命名可以随便取,在struts.xml导入新建的这个xml如图二
图一:
图二:
跳转页面有两种方式大家都知道,那么在struts应该怎么实现呢,在这里我建了一个action所以对应了一个xml
struts2获取参数值实现 ModelDriven
效果图:
与J2EE容器交互1,非注入
1.1耦合
1.2解耦
2,注入(实现RequestAware接口和所对应的方法)
2.1耦合(实现HttpServletRequest和HttpServletResponse接口和所对应的方法)
2.2解耦(实现RequestAware接口和所对应的方法)
以上就是struts2入门
strtuts2的工作原理
1.启动tomcat,完成struts2与web项目的集成(初始化struts.xml)
2.由页面或者postman发起*.action请求
3.由struts2核心过滤器进行请求拦截,并获取请求路径名*(userAction_*)
4.逐一与struts2的核心配置文件中的action节点的name属性进行比对
---找到了,根据action节点的class属性反射机制实例化子控制器类,然后根据动态方法名
---没找到,There is on Action mapped(找不到子控制器类)
5,创建子控器Action后,船舰Action Context上下文对象并往其中注入五个常用对象
session/request/application/parameters/valuestack(root根)将value Stack设置为根对象
注意:OgnlContext的实际实现者就是ActionContext
6.压栈的动作:
将实例化的Action子控制器类作为值栈中的第一个元素,加入到ValueStack中
如果子控制器器类实现了ModelDriven接口,那么将ModelDriven接口的返回值对象作 为第二个元素压入Value Stack
7.Struts中有个ParameterIntercepter,将与ValueStack值栈中的元素进行逐一比对
--由上往下,进行赋值对比



