Struts2介绍

Struts2是在WebWork2基础发展而来的。和struts1一样,Struts2也属于MVC框架。
不过有一点大家需要注意的是:尽管Struts2和struts2在名字上的差别不是很大,但
Struts2和struts2在代码编写风格上几乎是不一样的。那么既然有了struts1,为何还要
推出struts2。主要是因为struts2有以下优点:
1> 在软件设计上Struts2没有象struts1那样跟Servlet API和struts API有着紧密码的耦合,Struts2的
应用可以不依赖于Servlet API和struts API。Struts2的这种设计属于无侵入式设计,而Struts1
却属于侵入式设计。
public class OrderListAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpeServletRequest request,HttpServletResponse response)
throws Exception{
}
}
2> Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
3> Struts2提供了类型转换器,我们可惟把特殊的请求参数转换成需要的类型。在Struts1中,如果
我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行。
4> Struts2提供支持多种表现层技术,如:JSP、freeMarker、Velocit等。
5> Struts2的输入校验可以对定定方式进行校验,解新闻发布会了Struts1长久之痛。
6> 提供了全局范围、包范围和Action范围的国际化资源文件管理实现。

Struts2开发环境的搭建

搭建Struts2开发环镜
搭建Struts2环镜时,我们一盘需要做以下几个步骤工作:
1,找到开发Struts2应用需要使用到的jar文件。
2,编写Struts2的配置文件
3,在web.xml中加入Struts2 MVC框架启动配置

>>找到开发Struts2应用需要使用到的jar文件。
大家可以到http://struts.apache.org/download.cgi#struts25101下载struts-2.x.x-all.zip,目前最新版
为2.5.10。下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下。不同
的应用需要的JAR包是不同的。下面给出了开发Struts2程序最少需要的JAR。
struts2-core-2.x.x.jar:Struts2框架的核心类库。(必须)
xwork-2.x.x.jar:XWork类库,Struts2在其上构建。(必须)
ognl-3.1.x.jar:对象图导航语言(Object Graph Navigation Language),Struts2框架通过其读写对象的属性。(必须)
freemarker-2.3.x.jar:Struts2的UI标签的模板使用FreeMarker编写。(必须)
commons-logging-1.1.x.jar:ASF出品的日志包,Struts2框架使用这个日志包来支持Log4J和JDK1.4的日志记录。(必须)
commons-fileupload-1.3.2.jar:文件上传组件,2.6版本后必须加入此文件。(必须)
commons-io-2.x.jar: java.io 的扩展(必须)
commons-lang3-3.x.jar:为java.lang包提供扩展(必须)


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
</struts>


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<!-- 过滤器 映射 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>