Struts2初体验第一章本章任务实现基于Struts2的用户登录本章目标掌握Struts2的使用方法使用Struts2实现用户登录使用Struts2实现访问ServletAPI使用标签和数据验证完成用户登录Struts2及其优势Struts2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts1的部分优点Struts2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性Struts2的资源获取。
Struts2 学习笔记
拦截器,在AOP(Aspect-Oriented Programming<面向切面编程>)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 在Webwork的中文文档的解释为 - 拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。
Action配置中一定要设置input返回页面 添加验证只要创建验证的xml文件
下面给出了开发Struts 2程序最少需要的JAR。 struts2-core-2.x.x.jar :Struts 2框架的核心类库 xwork-2.x.x.jar :XWork类库,Struts 2在其上构建 ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),Struts 2框架使用的一种表达式语言 freemarker-2.3.x.jar : Struts 2的UI标签的模板使用FreeMarker编写commons-logging-1.1.x.jar: ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。Commons-fileupload 拷进去还有一种最省事的做法是:如果不需要跟第三方框架集成,把不带 - plugin结尾的jar文件都添加入类路径即可。如果需要跟第三方框架集成,这时候还需要加入对应的-plugin jar文件。例如跟spring集成,需要加入struts2-spring-plugin-2.x.x.jar.
Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。
很好的Struts2教程
Struts2 学习笔记
struts2-core-2.x.x.jar :Struts 2框架的核心类库 xwork-2.x.x.jar :XWork类库,Struts 2在其上构建 ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),Struts 2框架使用的一种表达式语言 freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker编写 commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK
Struts2自定义标签
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。
主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml配置文件,还有的会影响struts框架的行为。除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。
Struts2 API 详解
上图来源于Struts2官方站点,是Struts2的整体结构。一个请求在Struts2框架中的处理大概分为以下几个步骤1客户端初始化一个指向Servlet容器(例如Tomcat)的请求2这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMeshPlugin)3接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
Struts2中iterator标签遍历map总结
首先必须明确的一点,Struts 2本身并不是一个新技术,就好比AJAX一样,本身不是一个新技术,只是一个旧技术的换皮操作。在介绍Strut 2.1之前先来看一下关于WebWork。而且Strtus 1.x由于先天的设计问题,导致与Spring等框架的结合是非常的麻烦,但是在Struts(Webwork)之中,如果要引入了Spring框架,则非常的容易,一句配置文件完成。 可以直接从www.apache.org上下载Struts 2.1的开发包,现在的版本是:Struts 2.1.8,下来之后直接解压缩,进行手工的配置。
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。
Struts2整合Json插件时的一个隐蔽BUG
OGNL是Struts2框架的默认表达式语言,增强了Struts2的数据访问能力,同时简化了代码。
默认包路径包含 action,actions,struts,struts2 的所有包都会被 struts 作为含有 Action 类的路径来搜索。你可以通过设置struts.convention.package.locators 属性来修改这个配置。