今天应一哥们请求帮忙弄一个Struts的HelloWorld,本人大三时用过Struts做开发,那会Struts 2刚出,时隔那么多年没想到现在版本都到2.3.4.1了,话说我这HelloWorld中还真遇到不少的问题,主要是一些包有变化加上过滤器和以前的名字不一样了,现在把完整示例记录下来,以供新手参考。
1、eclipse新建一个网站项目:
2、项目名称为Hello,容器是Tomcat v6.0
3、把WEB程序根目录改为WebRoot
4、把源文件编译后输出的目录改为WebRoot\WEB-INF\classes
5、项目新建完后的文件目录
6、加载Struts2.3所需的jar包
7、jar包粘贴到WEB-INF\lib文件夹下
8、打开WEB-INF文件夹下的web.xml加入过滤器配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
9、在src文件夹下新建struts.xml文件
10、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="default" extends="struts-default">
<action name="HelloWorld" class="com.HelloWorld">
<result>/HelloWorld.jsp</result>
</action>
</package>
</struts>
11、在WebRoot根目录下添加一个jsp页面HelloWorld.jsp
12、HelloWorld.jsp代码如下:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title><s:text name="HelloWorld.message"/></title>
</head>
<body>
<h2><s:property value="message"/></h2>
</body>
</html>
13、在src文件夹下新建一个包,名字为com
14、在src文件夹com包中新建一个类,名字为HelloWorld
15、HelloWorld类内容如下:
package com;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld 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;
}
}
16、在WebRoot根目录添加一个index.html作为主页
17、index.html内容如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=HelloWorld.action">
</head>
<body>
<p>Loading ...</p>
</body>
</html>
18、最终的文件目录:
19、最后运行
20、运行效果先显示Loading…,之后转调到Struts is up and running