struts官网:http://struts.apache.org/ 其中,GA版本为稳定版本,是直接可以投入到企业生产中的版本
下载“Full Distribution” ,这里面包含了struts的所有内容
解压之后看到这些内容:
打开lib文件夹,这里是我们要导入到我们工程里面的库的jar包,
但是并不是Ctrl+A直接全部导入的,因为各个包之间存在依赖关系,所以如果全部导入可能会导致一些问题
作为一般应用,我们开始导入一下几个基本的包:
commons-fileupload-1.3.jar 文件上传功能
commons-io-2.0.1.jar commons-fileupload-1.3.jar 依赖的包
commons-logging-1.1.3.jar 关于日志处理的文件
ognl-3.0.6.jar 支持struts的表达式语言,ognl(Object-GraphNavigation Language)
struts2-core-2.3.15.jar struts的和心包
xwork-core-2.3.15.jar struts的内核是基于xwork的
除以上,还要导入
Javassist.....jar
commons-lang3.....jar
把以上的包拷贝到工程目录lib目录下,struts的环境就配制完成了
下面通过一个小例子来完善配置
再导入freemarker-2.3.19.jar
新建一个web project
导入相关包
首先让程序的的所有请求都交由由struts2的filter来代理
配置web.xml文件
找到struts2中的filter类,将其配置到web.xml中
文件 :web.xml
<?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.StrutsPrepareAndExcuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
配置struts.xml
1.在src根目录新建一个struts.xml文件
2.打开下载好的struts压缩包,在src里面找到一个示例程序,找到它的struts.xml文件,然后复制他的dtd声明到自己项目里面
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
tips:在http://struts.apache.org/dtds/struts-2.3.dtd中可以看到struts.xml的写法
文件 struts.xml
<?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> <package name="struts2" extends="struts-default"> <action name="login" class="com.test.struts2.LoginAction"> <result name="successPage">/result.jsp</result> </action> </package> </struts>
文件 login.jsp
<body> <form action="login"> username: <input type="text" name="username"/> password: <input type="password" name="password"> <input type="submit"> </form>
文件result.jsp
<body> username: ${requestScope.username }<br> password:${requestScope.password } </body>
文件LoginAction.java
package com.test.struts2; public class LoginAction { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute(){ return "successPage"; } }