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