对struts2.0的学习
2016-04-19 16:36
357 查看
struts首先是MVC框架 MVC是一种设计模式 将应用程序分成了视图、模型、控制器三部分,使代码逻辑清晰,同时提高移植性 M与V之间--观察者模式 V与C之间--策略模式 MVC的工作流程 请求----控制器调用模型处理,返回数据-----控制器用相应的视图格式化模型返回的数据完成相应 Struts2在以上流程中解决了三个问题: 1. 控制器如何根据用户的请求决定调用哪个模型(具体是模型中的Action组件)进行处理 2. 如何在业务逻辑处理器与serv let API 分离的情况下使处理器获得请求参数,并得以执行 3. 如何将处理后返回的数据传给相应的视图生成动态网页响应给用户 结合Struts的请求流程加以说明 客户端请求----经三个过滤器(ActionContextCleanUp,其他过滤器,到FilterDispatcher核心控制器) FilterDispatcher询问ActionMapper是否需要调用Action来处理,如果ActionMapper决定调用,FilterDispatcher就把对请求的处理交给了ActionProxy ActionProxy通过Configuration Manager 询问框架的配置文件,找到需要调用的Action类 ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action,但在调用之前ActionInvocation会根据配置加载Action相关的拦截器,每执行完一个 拦截器,会调用invocation的invoke方法,把请求传给下个Interceptor,所有的Interceptor执行完以后,会执行Action Action执行根据后,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果 这个返回结果可能是一个 需要表示为JSP或FreeMarker的模板,或者是另一个Action链 如果是前者,表示的过程中可以使用struts2的标签,生成动态网页后返回给用户 如果是后者,则再把上述过程执行一遍
struts同时实现了struts1的actionForm的功能:初始化数据,封装数据,验证数据格式
struts2.0的解决方式是:通过action实现preparable接口,实现对数据的初始化;
继承actionSupport类,重写validate(),显示数据的验证,在aciton配置响应的属性,和对应的getter和setter方法,实现数据封装,struts2.0通过ognl实现效果比acitonFrom更灵活
相关文章推荐
- ScriptEngineManager for grovry
- Eclipse中基本的组件
- Process 'command 'Java\jdk\bin\java.exe'' finished with non-zero exit value
- spring中scope作用域(转)
- Java对象数组
- spring bean的scope属性
- RxJava 操作符之创建类操作符
- java中String为什么是不可变的
- Myeclipse10 和activiti designer整合
- 单链表----定义、增加节点、删除节点、遍历输出(java)
- java设计模式之策略模式
- Java中ArrayList类详解
- SpringMVC-Spring-Hibernate项目搭建之三-- freemarker & 静态资源整合
- JAVA结合OpenOffice转换office文档-jodconverter-core-3.0-beta-4
- 如何在ubuntu通过命令行更新到java7版本
- struts2-2.1.6 bug
- Java虚拟机解析篇之---垃圾回收器
- Java使用cookie显示最近查看过的书
- 4GridView MainActivity.java
- Java虚拟机解析篇之---内存模型