Struts2 Tutorial

Struts2 Tutorial

第一章 准备环境
1.1 下载eclipse
从http://www.eclipse.org/downloads/下载Eclipse IDE for Java EE Developers版本,将下载的zip包解压缩,建议在eclipse.ini文件末尾加上-Dfile.encoding=UTF-8,这样可以保证所有的文件都是UTF-8格式。
1.2 下载Struts2
从http://struts.apache.org/下载Strut2的完整版(当前是2.2.3),里面包括struts2-core-2.2.3.jar、相关依赖包、例子程序、文档和完整的源代码。
1.3 配置
Struts2项目必须最少包含以下9个jar包和2个配置文件
文件名 描述
struts2-core.jar Struts框架库
xwork-core.jar xwork库,struts2是基于它构建的
ognl.jar 贯穿于整个Struts2框架的动态语言
freemarker.jar 所有的UI tag模板都是用freemarker写的
commons-logging.jar 记录日志
commons-fileupload.jar 给web程序提供健壮的、高性能的文件上传功能
commons-io.jar 开发io功能的工具库
commons-lang.jar
javassist.jar
web.xml java web程序的配置文件
struts.xml Struts2的配置文件,定义动作、结果、拦截器等
如果想使用struts的插件,那么相应的jar也应该包含进来。例如,使用spring插件struts2-spring-plugin.jar就需要把spring相关的jar也放进来。
1.4 Hello World
Hello World例子将显示一条欢迎信息。通过三个步骤来完成
1) 创建jsp文件用于显示消息
2) 创建动作类创建消息
3) 建立动作和jsp之间的映射关系
1.4.1 创建项目
启动eclipse,新建一个名称为chap01的Dynamic Web Project,项目结构如下

将上一节描述的7个jar包复制到lib目录下。
1.4.2 HelloWorld.jsp
新建jsp文件HelloWorld.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h2><s:property value="message" /></h2>
    </body>
</html>
1.4.3 HelloWorldAction
新建类HelloWorldAction.java用于创建消息
package openstudy.struts.tutorial;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {
public static final String MESSAGE = "Struts is up and running ...";

public String execute() throws Exception {
setMessage(MESSAGE);
return SUCCESS;
}

private String message;

public void setMessage(String message) {
this.message = message;
}

public String getMessage() {
return message;
}

}
1.4.4 struts.xml
struts.xml用于配置jsp与action之间的关系。在src下新建struts.xml文件


添加HelloWorldAction映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="openstudy.struts.tutorial" extends="struts-default">
        <action name="HelloWorld" class="openstudy.struts.tutorial.HelloWorldAction">
            <result>/HelloWorld.jsp</result>
        </action>
    </package>
</struts>
1.4.5 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>chap01</display-name>

<filter>
<filter-name>StrutsPrepareFilter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>StrutsExecuteFilter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>StrutsPrepareFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>StrutsExecuteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
1.4.6 运行chap01程序:
Eclipse菜单Window/ Show View/ Other…,选中Servers

在Servers视图中右键,选New/ Server

在New Server对话框中选择Apache下的Tomcat V6.0 Server

Next,选择tomcat的路径

Next,将chap01选到右边,Finish
在Server视图上选中run按钮,启动chap01

打开浏览器,输入http://localhost:8080/chap01/HelloWorld,显示如下消息,说明运行成功

1.4.7 对Action进行单元测试
在chap01下新建文件夹test,右键该文件夹,选择Build Path/ Use as Source Folder

右键HelloWorldAction,选择New/ JUnit Test Case

显示New JUnit Test Case对话框,将Source folder改为test, Name改为TestHelloWorldAction

Next,选中execute方法,Finish

TestHelloWorldAction文件内容改为:
public class TestHelloWorldAction {

@Test
public void testExecute() throws Exception {
HelloWorldAction hello_world = new HelloWorldAction();
String result = hello_world.execute();

assertTrue("Expected a success result!",
ActionSupport.SUCCESS.equals(result));

assertTrue("Expected the default message!",
HelloWorldAction.MESSAGE.equals(hello_world.getMessage()));
}

}
右键outline视图中的testExecute()方法, 选择Run As/ JUnit Test


JUnit视图中显示如下绿色的方条,说明单元测试通过。红条则失败。

参考资料
http://struts.apache.org/2.x/docs/home.html

猜你喜欢

转载自trainning.iteye.com/blog/1044174
今日推荐