Struts框架_概述、搭建、架构、配置详解及ActionAPI

来源:互联网 发布:邮政网络培训学院官网 编辑:程序博客网 时间:2024/06/05 05:02

struts2概述:(百度一下)基于MVC的web应用技术,本质上相当于servlet

功能:接受并处理请求

优势:提高开发效率。将WEB开发中多数常见的功能进行了封装

struts1和struts2:两个框架完全不同。不属于版本的替换。

 

 

框架搭建:

1. 导包。官网下载安装包。apps/struts-blank空项目下lib即必须包

2. 创建Action类。

public class HelloAction {

public String hello(){

System.out.println("Hello Action!");

return "success";

}

}

3. struts2中注册action。src目录下创建struts.xml配置文件,约束在struts核心jar core中

XXX

4. 配置struts2入口过滤器(web.xml中配置filter) StrutsPrepareAndExecuteFilter 全限定名;路径/*

至此,就可以测试struts了!

 

 

架构:官网上图

struts中拦截器:

1. 拦截器设计与servlet技术中的filter几乎一样。都是在流程运行到servlet(Action)之前执行。执行时分 为前处理和后处理(即以filter中chain.doFilter(req,resp)运行前后划分)

2. 过滤器|拦截器都体现了aop思想(纵向重复,横向抽取)

3. struts框架中将web常见开发功能封装到了拦截器中。每个拦截器都封装了一个功能。默认经过20个 拦截器。共35个拦截器

4. 拦截器设计非常灵活,经过的拦截器数量、顺序都可以自由定制。还可以自定义拦截器来扩展struts2 的功能

 

 

配置详解:

基本配置:

package:包配置,封装Action配置。便于管理Action

name属性:给包起个名字

namespace:为包中Action的访问加上一个路径,默认 ""

extends:继承指定包配置。使用struts2默认提供的"struts-default"

action:配置action的元素

name属性:自定义。决定Action访问资源的名称

class:Action的全限定名,默认com.opensymphony.xwork2.ActionSupport

method:Action类中处理请求的方法名,默认execute

result:Action方法的返回结果的定义配置

name属性:为结果返回值起别名。与实际返回值对应,默认success

type属性:指定结果处理器类处理结果。默认"dispatcher",共11个result-type

标签体:下一步访问的资源路径

 

常量配置:

默认常量配置:struts核心jar core下default.properties

修改常量配置:

1. src下的struts.xml文件使用constant标签,name-value(推荐使用)

2. src下使用struts.properties文件以键值对形式

3. web.xml 在filter中init配置初始化参数

注:加载顺序从上至下(倘若都有的话)

常量配置:

struts.i18n.encoding=UTF-8 :struts国际化编码.该配置可以解决表单提交乱码. 

注:只能解决post提交乱码.get仍然需要手动处理.

struts.action.extension=action,, :指定Struts中,访问Action的后缀名.  action|[空]

struts.devMode = false :指定是否开启struts2的开发模式。i18n配置热加载(即不关闭服务器重新加载配 置文件) ; struts.xml配置热加载 提供 ; 更多的错误|调试信息

struts2分模块开发:struts.xml使用include标签引入分模块xml配置文件

 

动态方法调用配置:

方式1:!号动态方法调用

1. 开启常量:struts.enable.DynamicMethodInvocation = true

2. 不写Action的method属性

3. 访问时按照指定路径调用方法:

http://xxxxx:8080/xxx/DemoAction![execute]调用的方法名

方式2:*(通配符)动态方法调用

1. 配置:

此处{1}为*索引

2. 访问:

http://xxxxx:8080/xxx/HelloAction_haha

 

 

struts2核心Action:

创建方式:

方式1:POJO(Plain Ordinary

提供公共空参构造和execute方法(public、返回值String、空参)

方式2:实现Action接口

声明了一个范例Action方法;准备了一些字符串常量,在返回|定义结果时使用

方式3:继承ActionSupport类(推荐使用)

实现了Action接口;实现了其他功能的接口

 

Action方法创建规则:

必须public;返回值String;方法名任意;参数必须为空;可以抛出异常。

public String execute(){

return null;

}

 

 

 

未完待续……

0 0