MVC设计模式的3个关注点:模型、视图和控制器。在struts2中,它们分别通过action,result,FilterDispatcher实现。如下图所示:
结果向浏览器返回页面。
开发流程小结:
0. 将struts2(这里用的是最新版2.3.16)需要的相关jar包build到项目的path后,编辑/WEB-INF/web.xml文件如下
它是web应用程序的中心配置文件,部署描述符,它包含了web应用程序中所有的Servlet、过滤器和其他组件的定义
<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>
1.构建入口文件struts.xml,该文件用于定义包、动作、以及相应的结果,是全局核心文件
<?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>
<constant name="struts.devMode" value="true" />
<package name="public" extends="struts-default">
<action name="Name">
<result>/NameCollector.jsp</result>
</action>
<action name="Show" class="cn.myseu.action.HelloWorld">
<result name="SUCCESS">/show.jsp</result>
</action>
</package>
</struts>package标签定义了包。
action标签定义了动作,并定义动作名,动作的实现类
result标签则指定了动作的结果
2.建立结果页面(视图页面)
NameCollector.jsp
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>HelloWorld</title> </head> <body> <hr> <h3>A Hello Test</h3> <h4>Input your name:</h4> <s:form action="Show"> <s:textfield name="name" label="Your name" /> <s:submit /> </s:form> </body> </html>
这里表单元素通过action属性指定了在strtus.xml文件中定义的动作名。
表单提交后数据将会被放到ValueStack中。
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>HelloWorld</title> </head> <body> <hr> <h3>A Test</h3> <h4> <s:property value="customGreeting" /> </h4> <hr> </body> </html>这里需要说明的是s:property标签从ValueStack中取数据,另一方面javabean也从ValueStack中取相应的数据。
3.编写动作的实现类
cn.myseu.action.HelloWorld
package cn.myseu.action;
public class HelloWorld {
public String execute(){
setCustomGreeting("Hello, "+getName());
return "SUCCESS";
}
private String name;
private String customGreeting;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCustomGreeting() {
return customGreeting;
}
public void setCustomGreeting(String customGreeting) {
this.customGreeting = customGreeting;
}
}
这里使用JavaBean属性来保存应用程序域数据。4.部署应用并打开页面
原文:http://blog.csdn.net/tao_sun/article/details/20301241