struts2简介
struts1和struts2的区别
struts2的mvc
struts2框架的集成:
1.web.xml配置struts2过滤器:前端控制器、核心控制器 如果有多个过滤器,需要将该过滤器放置到最后一个
2.struts.xml配置:主要是配置action,根据该配置,可以让前端请求找到对应的action的位置。
2.1package标签:
- 可以继承框架提供的package包,帮助我们扩展package的功能,提供访问action的副父级路径,package可以继承多个包
2.2action标签:
- 配置actioon对象。name,action的访问路径。class,action的类型。method,action要调用的方法
2.3 result标签:
- 一般负责视图的跳转。name,视图的逻辑名称。type,跳转的方式
2.4 include标签
- 包含其他的配置文件。file:要办韩文件的路径
2.5 constant标签
- 设置常量,覆盖default.properties文件中对应的常量。name,常量名。value,常量值。
2.6 param标签
- 设置action的初始变量值,result中可以设置返回数据。
- excludenullPrpperties,是否序列化空的属性
- includeProperties 需要序列化的属性
- excludeProperties 不需要序列化的属性
- namespace 配置跳转页面的命名空间
- actionName配置跳转action的名字
3.Action类:POJO,实现Action接口,继承自ActionSupport,作用对前端的请求进行业务逻辑处理。
struts2框架的简单的运行流程:
前端发起请求-->请求经过过滤器StrutsPrepareAndExecuteFilter-->过滤器会扫描struts.xml文件-->根据xml文件创建对应action的invocation对象-->通过invocation对象执行action中对应的方法,返回视图的逻辑名称-->根据返回的视图的逻辑名称在struts.xml文件中找到对应的result-->根据result中的视图相对路径,找到result中的视图-->将该视图返回给前端界面。
strut2的六大配置文件:
- default.properties
- struts-default.xml
- struts-plugn.xml
- struts.xml
- struts.properties
- web.xml
struts2中对servletAPI的使用:
- 实现Aware接口
- 通过servletActionContext静态方法
- 通过ActionContext获取
- 起主要作用的拦截器ServletConfig
struts2接收前端传递过来数据的方式:
- 通过action的成员变量接收
- 定义一个model类,前端传递参数时候,通过ognl表达式来提取
- 通过实现modelDriver接口,将前端提交的参数,赋值给model对象的成员变量
- 接收前端传递过来的数据为数组(数组中的元素是String或者是Model类)或者集合
struts2返回给前端json数据
- 使用struts2的一个json插件:struts-json-plugin.jar
- 负责处理json数据返回的 配置文件中的package要继承自json-default包
- 负责返回json数据的result需要将type设置为json
- 负责返回json数据的result标签中如果没有内容,则将action中所有提供了get方法的成员变量,都转换成json对象返回给前端
- result的子标签param