Strut2基本配置:
1、从官网下载struts 2.5版本。
网址链接:http://struts.apache.org/ Struts官方网站
http://peoptle.apache.org/builds/struts Struts历史包
2、从下载好的文件夹中的lib文件中复制必须的struts jar包到web项目工程的lib文件夹下。必须jar包如下:
commons-fileupload、commons-io、commons-lang3(注意这里是lang3包,不是lang包)、commons-logging、freemarker、javassist、log4j-api、ognl、struts2-core(注意:在旧版本的教程中会要求你导入xwork包,如果你发现你的版本中没有这个包的话,不要着急,因为高版本的xwork包已经合并进struts-core包中了),在导入包的时候不要一股脑将所有包都导入进去(毕竟我刚开始也是这么干的),因为一些jar包中可能会引起冲突,导致异常。
3、导入之后,点击项目右键,点击build path,构建路径,addjars,将项目lib下的jar包添加到Libraries。我之后将Libraries下的jar包remove了,运行项目发现并没有出现什么问题,这一步骤到底有没有必要性,它存在的意义是什么就看看以后能不能发现了。
到这,我们就可以来创建我们的第一个struts2案例:
4、配置web.xml
都说在一个webject项目中,web.xml是整个项目的入口。所以我们先来配置web.xml中的内容:直接上代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<display-name></display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.filter.
StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
在旧版中,对于 <filter-class> 中的内容是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,而在2.5版本中是没有.ng的,这里有个小技巧,按住ctrl键,移动鼠标光标到这个内容上,如果出现变色和下划线且能够成功点击进去这个类,说明配置成功。
5、配置struts.xml:
右键点击src文件夹,新建xml文件,命名为struts.xml。注意:这个名字必须是struts.xml,且文件必须存放在src文件夹下。附上代码:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="com.zjy.HelloWorldAction">
<result >/index.jsp</result>
</action>
</package>
</struts>
首先是struts-2.5的限制规范。action中的name属性是action的名称,在这里给action起了一个名字叫hello; class属性是action的绝对路径,这两个属性必不可少;result中的SUCCESS是Action返回值,默认是SUCCESS,不写也行。/index.jsp是Actino执行成功之后返回的页面
6、编写Action类;在src新建一个class,Action和servlet一样,一个action就是一个java类,新建action时需要指定action的超类superclass:ActionSupport。附上action类的代码:
package com.zjy;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
privatestatic final long serialVersionUID = 1L;
@Override
publicString execute() throws Exception{ //重写execute方法
System.out.println("执行Action");
return SUCCESS; //返回SUCCESS, struts.xml 中的result接受到SUCCESS字符串,跳转成功页面。
}
}
就这样,一个最简单的struts2就配置成功了!最后我上一张好图,它完美解析了一个struts的运作流程,熟悉了这个,你就熟悉了struts!