由于自己近期在学习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属性值