Struts2安装与简单部署实例

打开http://struts.apache.org/网站,下载strut2

版本选择:

Full Distribution: Struts2完整版 建议下载该项(此版包括以下4项);

Example Applications: Struts2的示例应用,完整版已包括;

Essential Dependencies Only: Struts2的核心库,完整版已包括;

Docmentation: Struts2相关文档,包含Struts2的使用文档、参考手册和API文档等。完整版已包括;

Source:Struts2源代码,如需阅读Struts2源码,需要结合XWork源码点这里 获得。完整版已包括;

Full Distribution该目录结构下包括

    apps:示例应用;

    docs:相关文档,包括Struts 2的快速入门、Struts 2的文档、以及API文档等内容;

    lib:核心类库,以及Struts 2 的第三方插件类库;

    src:Struts 2框架的全部源代码。

提示  由于Struts 2必须需要依赖于是XWork,因此读者阅读Struts 2源代码时必须结合XWork的源码,而该src文件夹下并没有提供XWork的源代码。读者必须自行下载XWork源码,下载XWork源码请登录http://www.opensymphony.com/xwork/站点下载。

lib文件夹下的struts2-core-2.1.6.jar、xwork-2.1.2.jar和ognl-2.6.11.jar等必需类库复制到Web应用的WEB-INF/lib路径下。当然,如果你的Web应用需要使用Struts 2的更多特性,则需要将更多的JAR文件复制到Web应用的WEB-INF/lib路径下。如果需要在DOS或者Shell窗口下手动编译Struts 2相关的程序,则还应该将struts2-core-2.1.6.jar和xwork-2.1.2.jar添加到系统的CLASSPATH环境变量里。(一般5个:

struts2-core-2.0.11.1.jar

xwork-2.0.4.jar

commons-logging-1.0.4.jar

freemarker-2.3.8.jar

ognl-2.6.11.jar)

提示  大部分时候,使用Struts 2的Web应用并不需要利用到Struts 2的全部特性,因此没有必要一次将该lib路径下JAR文件全部复制到Web应用的WEB-INF/lib路径下。

注意:我下的是strut2 2.3的版本,更上面的不同:

struts2.2.3最小jar包:
struts2-core-2.2.3.jar :Struts 2框架的核心类库
xwork-core-2.2.3.jar :XWork类库,Struts 2在其上构建
commons-fileupload-1.2.2.jar :文件上传组件,2.1.6版本后必须加入此文件
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar :日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。
freemarker-2.3.16.jar :Struts 2的UI标签的模板
javassist-3.11.0.GA.jar :唯一一个特殊的jar包,此包不在struts2的lib文件夹中。
ognl-3.0.1.jar  :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性

 

 

 

编辑Web应用的web.xml配置文件,配置Struts 2的核心Filter。下面是增加了Struts 2的核心Filter配置的web.xml配置文件的代码:

Struts2安装与简单部署实例
<?xml version="1.0" encoding="GBK"?>
<!-- 配置Web应用配置文件的根元素,并指定配置文件的Schema信息 -->
<web-app 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" version="2.5">
<!-- 定义Struts 2的核心控制器:FilterDispatcher -->
<filter>
<!-- 定义核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 定义核心Filter的实现类 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class>
</filter>
<!-- FilterDispatcher用来初始化Struts 2并且处理所有的HTTP请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Struts2安装与简单部署实例

注意:

如果struts2版本是2.1及以前

web.xml配置过滤器的时候应该是这样:
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 

如果struts2 版本是2.1以上,web.xml配置:
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 

错误分析

java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
解决:缺少commons io包

java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
解决:缺少commons lang包

java.lang.ClassNotFoundException: javassist.ClassPool
解决:缺少javassist包

我用的是eclipse ee,apache版本是1.7,新建一个dynamic web project没有看到web.xml,为什么呢?是因为新建工程时最后一个选项会让你选择是否产生web.xml,勾选就可以了。参考;http://www.iteye.com/problems/62504

创建hello.jsp

Struts2安装与简单部署实例
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>strut2 应用</title>
</head>
<body>
<form action="struts.action" method="post">
请输入姓名:<input type="text" name="name" /><br/>
<input type="submit" value="提交">
</form>

</body>
</html>
Struts2安装与简单部署实例

当点击提交按钮时,就会交给struts.actiion,strut2的filter拦截器就会起作用,将用户请求转发给相应的action类。

下面编写action类的实现。

Struts2安装与简单部署实例

上一篇:Mirror--镜像断开的解决办法


下一篇:配置自己的OpenGL库,glew、freeglut库编译,库冲突解决