Struts2框架是MVC的一个代表,具体的结构图如下:
WEB服务器接收客户端的请求,将请求发送给控制器FilterDispatcher(实际上就是一个filter),控制器根据不同的请求,发送给相应的模型去处理,并将模型处理完的结果发送给视图,最终将视图发送给客户端,显示处理结果。下面构建一个structs2示例,首先新建一个java web程序:Struts2_HelloWorld。
1.将Struts 2.0 lib下的jar文件加到工程的构建路径(build path)
将下列文件:
struts2-core-2.1.2.jar
xwork-2.1.1.jar
commons-logging-1.0.4.jar
commons-fileupload-1.2.1.jar (可选)
commons-io-1.3.2.jar (可选)
freemarker-2.3.12.jar
ognl-2.6.11.jar
复制到Struts2_HelloWorld\WebContent\WEB-INF\lib目录下
2.修改web.xml文件,如下:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Struts 2.0 Hello World</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
3.新建struts.xml文件
在Struts2_HelloWorld\src右键新建一个文件,structs.xml,修改内容如下
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="tutorial" extends="struts-default">
<action name="HelloWorld" class="tutorial.HelloWorld">
<result>/Hello.jsp</result>
</action>
</package>
</struts>
4.新建SayHello.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Say Hello</title>
</head>
<body>
<h3>Say "Hello" to: </h3>
<s:form action="HelloWorld.action">
Name: <s:textfield name="name" />
<s:submit />
</s:form>
</body>
</html>
5.新建Hello.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Hello</title>
</head>
<body>
<h3><s:property value="name" /></h3>
</body>
</html>
6.新建HelloWorld.java
右键单击Struts2_HelloWorld\src,新建package:tutorial
在tutorial右键单击,新建一个class,在“Name”中键入HelloWorld,在“Superclass”中键入com.opensymphony.xwork2.ActionSupport,点击“Finish”关闭对话框。将HelloWorld.java的内容修改为:
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
name = "Hello, " + name + "!";
return SUCCESS;
}
}
至此一个structs2的程序就修改完毕,发布这个程序:
打开Internet Explorer,键入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp,窗口输出如图25所示
图25 SayHello.jsp
在“Name”键入字符串(如World),点击Submit,转到HelloWorld.jsp页面,如图26所示
图26 HelloWorld.jsp
本文参考自http://www.blogjava.net/max/archive/2006/10/10/74353.html