一个非常及其简单的Struts2例子,未使用struts2的标签,验证框架,甚至也没有Form表单提交,只实现在地址栏内输入一个Struts2的action地址,然后跳转到项目首页。使用Struts2.2.3+tomcat6 步骤如下:
1.下载Struts2.2.3 jar包; 可到官方网站下 地址: http://struts.apache.org/2.2.3/index.html
2.例子需要的jar包 如下(官方的jar包几十个,但本例子使用以下几个足以; 且没有验证缺少以下哪几个jar包是否可以,但本例子导入这些jar包足够)
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-logging-1.1.1.jar
commons-validator-1.3.1.jar
freemarker-2.3.16.jar
javassist-3.11.0.GA.jar
ognl-3.0.1.jar
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
以上9个jar包是看的网上的资料,需要的基本的jar包,但我在测试的时候发现报异常,添加上 commons-lang-2.5.jar jar包才可以
因而 一共10个jar;
3.新建一个web项目
4.新建一个首页 index.jsp
5.将jar包导入项目
6.Web.xml中添加如下代码:
<!-- 定义Struts 2的FilterDispatcher的Filter --> <filter> <!-- 定义核心Filter的名字 --> <filter-name>struts2</filter-name> <!-- 定义核心Filter的实现类 --> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <!-- FilterDispatcher用来初始化Struts 2并且处理所有的Web请求 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
7. 在src目录下新建struts.xml文件 (注意 一定要是src目录下,且不要在src的子目录下。 编译后这个文件会到web-inf/classes目录下)
struts.xml代码如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- package提供了将多个Action组织为一个模块的方式 name: package名称 (必须) 其名字可以随意取,但必须是唯一的 extends: 继承的父package名称 (非必须, 但如果有,其父package必须在本package之前) namespace: 定义package命名空间 (非必须) 该命名空间影响到url的地址, 例如此命名空间为/test, 那么访问是的地址为http://localhost:8080/struts2/test/XX.action --> <package name="index" extends="struts-default" namespace="/" > <!-- name action名字;class action对应的类 --> <action name="indexAction" class="index.IndexAction"> <result>/index.jsp</result> </action> </package> </struts>
8.IndexAction.java 代码如下
package index; import com.opensymphony.xwork2.ActionSupport; public class IndexAction extends ActionSupport{ public String execute() throws Exception { return super.SUCCESS; } }
9.浏览器输入 http://localhost:8080/struts2/indexAction.action访问, struts2是项目名 若能跳到首页, 即成功!
ps:很久以前就用过Struts2, 但好久不用,突然手生了不少。 这段时间公司项目松,就想复习下呢, 结果弄了好久没有成功,老是找不到action,怎么找也找不到原因,后来在网上搜索呢,竟然发现是因为使用的 WebSphere application server 6.1和Struts不能直接兼容造成的, Fuck! 但按照网上的解决方法,依然是不能解决,不得不使用Tomcat,放到tomcat下,一切正常,没有一点问题。