由于自己近期在学习SSH框架,因此把学习的过程记录下来。
创建Struts应用首先要下载struts源码和进行相应的配置,struts的下载和配置参照我前面的博客。
一.打开myeclipse,新建一个web project,此处命名为HelloStruts.
二.从所要使用的struts lib库中把所要的jar包拷贝到WEB-INF下的lib文件夹里,本文使用的是2.3.16.3版本,需要的jar包为
1. asm-x.x.jar
2. asm-commons-x.x.jar
3. asm-tree-x.x.jar
4. commons-io-X.X.X.jar
5. commons-lang3-X.X.X.jar
6. commons-fileupload-X.X.X.jar
7. freemarker-X.X.X.jar
8. javassist-X.X.X.jar
9. ognl-X.X.X.jar
10. struts2-core-X.X.X.X.jar
11. xwork-core-X.X.X.jar
粘贴后工程目录如下图所示
三、在src目录下新建xml文件:struts.xml。
1.在WEB-INF目录下建立一个文件夹dtds,用来存放所用到的 dtd,这里首先将struts2.3.dtd复制到该目录下
2.在struts.xml中添加对该dtd的引用
<!DOCTYPE struts PUBLIC
"-//ApacheSoftware Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
3.创建package和action,代码如下
<?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="HelloTest" namespace="/test" extends="struts-default"> <action name="hello" class="com.test.HelloStruts" method="sayHello"> <result name="success">/welcome.jsp </result> </action> </package> </struts>
注意一定要 添加<struts></struts>根节点
三、根据配置文件,创建相应的java bean
根据第二部action中定义的类可知,该类是放在包com.test中,类名为HelloStruts,在src目录下创建com.test包,在包中新建HelloStruts类。代码为:
package com.test; public class HelloStruts { String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String sayHello() { this.message = "这是我的第一个struts应用"; return "success"; } }
四、配置web.xml文件,添加相应的filter
<!-- 定义过滤器 --> <filter> <!-- 指定过滤器名称,不能为空 --> <filter-name>struts2</filter-name> <!-- 指定filter的实现类,这里使用的是struts2提供的过滤器类 --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- 定义filter所拦截的URL地址 --> <filter-mapping> <!-- 指定filter的名字,该名字必须是filter元素中已经声明过的名字 --> <filter-name>struts2</filter-name> <!-- 定义filter所负责拦击的URL地址 --> <url-pattern>/*</url-pattern> </filter-mapping>
五、编写相应的view视图。也就是创建action里定义的welcome.jsp。
<%@ page language="java"import="java.util.*" pageEncoding="utf-8"%> <% String path =request.getContextPath(); String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My First Struts demo</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <linkrel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> Hellostruts <br> ${message} </body> </html>
六、把应用部署到tomcat上,并启动tomcat,并在浏览器中访问。
注意上面浏览器中输入的网址为:http://localhost:8080/HelloStruts/test/hello。这里做解释说明:HelloStruts为应用名称,也就是工程名称
test为包的名称空间,就是struts.xml中的package包的namespace值
hello为动作名称,也就是action的name属性值