Struts基本用法<一>:MVC,Action的配置
MVC mode1->mode2
传统的mode1将时候视图资源和控制逻辑全部耦合在jsp中,开发简单,但是不利于后期的更新维护
基于MVC的mode2通过将控制逻辑集中到控制器(Action)中,由控制器来实现对视图资源的控制,以及与javabean的交互。
上图就是一个典型的MVC实现流程:
->客户端的请求使用ac.action处理请求数据
->请求被控制器拦截,去掉.action使用ac作为action的名字,去Struts.xml中查找对应的action[也就是C control]
->根据查找到的action ac,实例化其具体实现类pkgAcAction[也就是M mode]
->执行实例化类的execute方法
->根据execute方法执行完成后,返回一个代表jsp资源标识的字符串“success”
->处理结果返回给sturts.xml,控制器根据返回的字符串标识,去其下的result中查找相应的jsp资源路径
->获得资源ac-success.jsp[也就是V view],并返回给客户端
Action 的配置
对于一个开发人员而言,我们更关心的是使用这个框架之后,除框架提供的支持外,我们还需要做什么:
配置StrutsPreparedExecuteFilter。
StrutsPreparedExecuteFilter是整个流程中的核心,这个指挥中心不是自行启动的,我们需要在web.xml中启动它。这件事只需要做一次。创建Action类
action负责处理用户的请求,具体怎么处理,需要我们创建一个Action类来实现。创建视图
Action实现之后,我们要考虑返回怎样的视图给用户。在这里,我们需要创建1到多个jsp文件,担任视图的角色。配置action映射
配置name和class的对应关系,让Struts知道该把哪些请求分派给哪个action。配置result映射
Action返回的是一个普通的字符串,我们称之为处理结果或者逻辑视图,不管叫什么,总之它不是物理视图,不指定任何视图文件。Struts为了将Action类和视图文件解耦,将返回结果和物理视图的对应关系,我们称之为result映射,在配置文件中配置。
上面五个工作,第一个只需要做一次,相对的,后面四个每创建一个action都需要做一次。
在上面五个工作中,视图文件是jsp,我们将之视为基本知识,并不打算介绍。result映射一般是在action映射内部配置的,所以配置result将包含在配置actioin中。所以,我计划分下面三个主题,介绍上面的工作:
- 配置核心过滤器
- 创建Action
- 配置action
在上述五点中,依次要理解
- Action接口 以及 提供了大量默认方法的ActionSupport基类,Action与servlet的交互
- 配置Action时,包名和命名空间可以包含多个多个action,基本action的配置方法,action的动态调用,method通配符和默认action