一、创建一个动态Web项目
♦ 注意 :一定要勾选Generate Web.xml deployment descriptor 选项,这个将在Eclipse为你创建一个动态web项目。
二、导入相关jar包
从Struts2 的lib文件夹中拷贝以下文件到项目的 WEB-INF\lib 文件夹里。
三、创建Aciton类
Action类是Struts2 应用程序的关键,通过它实现大部分的业务逻辑。
public class HelloAction {
private String name;
public String execute() {
System.out.println("访问到了......");
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
这是一个非常简单的具有“name”属性的类。对于“name”属性,我们用标准的getter和setter方法,以及一个返回“success”字符串的执行方法。
Struts2 框架将创建一个“HelloAction ”类的对象,并调用execute方法来响应用户的动作。你把你的业务逻辑放进execute方法里,最后会返回字符串常量。简单的描述每个URL,你需要实现一个Action类,你也可以用类名直接作为你的动作名,或者使用 struts.xml文件 映射到其他name上。
四、创建视图
hello.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Say Hello</title>
</head>
<body>
你好,<font color="red">${name }</font>!<br>
你好,<font color="green"><s:property value="name"/></font>!
</body>
</html>
五、创建主页:
index.jsp
<html>
<head>
<meta charset="utf-8">
<title>Say Hello</title>
</head>
<body>
<h1>Hello World From Struts2</h1>
<form action="SayHello"> <!-- 与struts.xml中的action.name保持一致 -->
<label for="name">请输入您的昵称:</label><br/>
<input type="text" name="name"/>
<input type="submit" value="Say Hello"/>
</form>
</body>
</html>
六、配置文件
♦ struts.xml : 文件需要在Java Resources的 src下创建;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd"> <!-- 可在 Web App Libraries ——>struts2-core-2.5.20.jar ——>struts-default.xml 中复制 -->
<struts>
<package name="hello" namespace="/" extends="struts-default">
<action name="SayHello" class="pers.uie.action.HelloAction" method="execute">
<result>/hello.jsp</result>
</action>
</package>
</struts>
其中,<package>标签具有以下属性:
定义<action>标签对应于我们想要访问的每个URL,并且使用execute()方法定义一个访问相应的URL时将要访问的类。
<!--action:业务控制器,用于注册业务控制器组件
name:action名称,用于规定Action的访问路径
class:业务控制器组件,用于指定业务控制器对应的类
method:方法,用于指定访问 当前action时要调用的方法 -->
(Results(结果)确定在执行操作后返回到浏览器的内容,而从操作返回的字符串应该是结果的名称。Results有 name和 type属性可选,默认的name值是“success”。)
<!--result:输出组件,用于转发、重定向、直接输出
name:名称,一个action下可以有多个result,彼此不能重名
默认值转发,元素内设置转发的页面 -->
♦ web.xml : 文件需要在WebContent的WEB-INF文件夹下创建;
<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>
(将Struts2 过滤器映射到 /* ,而不是 /*.action ,这意味着所有的url都会被Struts过滤器解析。)
最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/HelloStruts2/index.jsp ,将会呈现如下图所示的结果:
输入一个“Struts2”值并提交页面,可以看到以下页面: