- 浏览: 203225 次
- 性别:
- 来自: 湖南
文章分类
最新评论
Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的应用。作为最成功的Web框架,Struts自然拥有众多的优点:
MVC 2模型的使用
功能齐全的标志库(Tag Library)
开放源代码
但是,所谓“金无赤金,人无完人”,Struts自身也有不少的缺点:
需要编写的代码过多,容易引起“类爆炸”
单元测试困难
这些缺点随着Web的发展越来越明显。这就促生了Struts 2.0,它的诞生能很好的解决上述问题。 好啦,废话就不多说了,现在就让我们感受一下的Struts 2.0的魅力吧。
搭建开发和运行环境
到Apache下载Struts 2.0包
打开Eclipse 3.2新建Web工程
点击菜单File\New\Project,出现对话框
选择Web\Dynamic Web Project,点击“Next”,出现对话框
在“Project Name”中键入Struts2_HelloWorld,点击“New”,出现对话框
选择“Apache\Apache Tomat v5.5”,点击“Next”,出现对话框
点击“Finish”,关闭对话框。
将Struts 2.0 lib下的jar文件加到工程的构建路径(build path)
按ctr+a全选,复制,再转到Eclipse窗口,在“Project Explorer”子窗口中选中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘贴。经过Eclipse自动刷新“Project Explorer”子窗口,刚才所粘贴的jar文件应该会出现在Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下
打开web.xml文件,将其修改为以下代码:
新建struts.xml文件
右键点击,Struts2_HelloWorld\Java Resources: src,出现菜单
点击“Other”,出现新建对话框
点击“Next”,出现新建文件对话框
在“File name”中键入sturts.xml,点击“Finish”,然后将struts.xml的内容修改为:
新建index.html文件
右键点击Struts2_HelloWorld\WebContent,出现菜单
点击“Other”,出现新建对话框
选择Web\HTML,点击“Next”出现对话框
在“File Name”中键入index.html,点击“Next”,出现对话框
点击“Finish”,将index.html的内容修改为以下内容:
将应用程序打包到tomcat上
右键点击Struts_HelloWorld,出现菜单
点击“Export\WAR file”,出现对话框
选择“Web\WAR file”,点击“Next”,出现对话框
输入war文件的路径(如%tomcat%\webapps\Struts2_HelloWorld.war),点击“Finish”关闭对话框。
启动tomcat,运行应用程序
打开你的Internet Explorer,键入http://localhost:8080/Struts2_HelloWorld/,窗口输出Hello World窗口
第一个Struts 2.0应用程序——Hello World
新建类包(package)
右键点击Struts2_HelloWorld\Java Resources: src,出现菜单
点击“New\Package”,出现对话框
在“Name”键入tutorial,点击“Finish”关闭对话框。
新建HelloWorld.java文件
右键点击Struts2_HelloWorld\Java Resources: src\tutorial,出现菜单
点击“New\Class”,出现对话框
在“Name”中键入HelloWorld,在“Superclass”中键入com.opensymphony.xwork2.ActionSupport,点击“Finish”关闭对话框。将HelloWorld.java的内容修改为:
在struts.xml中添加action映射(mapping)
新建SayHello.jsp
参考“新建index.html文件”步骤,弹出对话框
点击“Next”, 进入下一步
在“File name”键入SayHello.jsp,点击“Next”进入下一步
点击“Finish”关闭对话框,并将SayHello.jsp的内容修改为:
新建HelloWorld.jsp(请参考上一步),HelloWorld.jsp的内容为:
重新打包发布应用程序
先停止tomcat, 再将tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夹删除,参照“将应用程序打包到tomcat上”重新发布应用程序。
启动tomcat,运行测试
打开Internet Explorer,键入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp,窗口输出SayHello.jsp
在“Name”键入字符串(如World),点击Submit,转到HelloWorld.jsp页面
单元测试Hello World
在文章开始的时候提及,单元测试困难是Struts一大缺点。现在让我们在体验一下,在Struts 2.0中是如何进行测试的。
新建JUnit单元测试
右键点击Struts2_HelloWorld\Java Resources: src\tutorial,弹出点击“Next\Other”
选择“Java\JUnit\JUnit Test Case”,点击“Next”
选择“New JUnit 4 test”,在“Name”中键入HelloWorldTest,在“Class under test”键入tutorial.HelloWorld,点击“Next”
选中HelloWorld\execute方法,点击Finish。如果生成的HelloWorldTest.java文件的图标(Icon)出现红色交叉标志,请进行以下步骤添加JUnit 4的jar包。
右键点击Struts2_HelloWorld,出现菜单。
点击“Build Path\Add Libararis”,弹出对话框
选中“JUnit”,点击“Next”
选择“JUnit 4”,点击“Finish”关闭对话框,并将HelloWorldTest.java的内容修改为:
运行单元测试
右键点击Struts2_HelloWorld\Java Resources: src\tutorial\HelloWorldTest.java,弹出菜单
点击“Run As\JUnit Test”,出现JUnit子窗口
绿色矩形表示,所有单元测试通过。
总结
上面的例子简单地演示了,Web 应用程序的基本操作,也即是,页面输入->Action处理->再输出到另外页面。Struts 2.0的简单易用、方便测试相信也会给大家留下不错的印象吧。我相信,Struts 2.0作为一个全新的Web架构,将会再次掀起Web开发的热潮。
MVC 2模型的使用
功能齐全的标志库(Tag Library)
开放源代码
但是,所谓“金无赤金,人无完人”,Struts自身也有不少的缺点:
需要编写的代码过多,容易引起“类爆炸”
单元测试困难
这些缺点随着Web的发展越来越明显。这就促生了Struts 2.0,它的诞生能很好的解决上述问题。 好啦,废话就不多说了,现在就让我们感受一下的Struts 2.0的魅力吧。
搭建开发和运行环境
到Apache下载Struts 2.0包
打开Eclipse 3.2新建Web工程
点击菜单File\New\Project,出现对话框
选择Web\Dynamic Web Project,点击“Next”,出现对话框
在“Project Name”中键入Struts2_HelloWorld,点击“New”,出现对话框
选择“Apache\Apache Tomat v5.5”,点击“Next”,出现对话框
点击“Finish”,关闭对话框。
将Struts 2.0 lib下的jar文件加到工程的构建路径(build path)
按ctr+a全选,复制,再转到Eclipse窗口,在“Project Explorer”子窗口中选中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘贴。经过Eclipse自动刷新“Project Explorer”子窗口,刚才所粘贴的jar文件应该会出现在Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下
打开web.xml文件,将其修改为以下代码:
<?xml version="1.0" encoding="ISO-8859-1"?> <!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>
新建struts.xml文件
右键点击,Struts2_HelloWorld\Java Resources: src,出现菜单
点击“Other”,出现新建对话框
点击“Next”,出现新建文件对话框
在“File name”中键入sturts.xml,点击“Finish”,然后将struts.xml的内容修改为:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> </struts>
新建index.html文件
右键点击Struts2_HelloWorld\WebContent,出现菜单
点击“Other”,出现新建对话框
选择Web\HTML,点击“Next”出现对话框
在“File Name”中键入index.html,点击“Next”,出现对话框
点击“Finish”,将index.html的内容修改为以下内容:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello World</title> </head> <body> <h3>Hello World!</h3> </body> </html>
将应用程序打包到tomcat上
右键点击Struts_HelloWorld,出现菜单
点击“Export\WAR file”,出现对话框
选择“Web\WAR file”,点击“Next”,出现对话框
输入war文件的路径(如%tomcat%\webapps\Struts2_HelloWorld.war),点击“Finish”关闭对话框。
启动tomcat,运行应用程序
打开你的Internet Explorer,键入http://localhost:8080/Struts2_HelloWorld/,窗口输出Hello World窗口
第一个Struts 2.0应用程序——Hello World
新建类包(package)
右键点击Struts2_HelloWorld\Java Resources: src,出现菜单
点击“New\Package”,出现对话框
在“Name”键入tutorial,点击“Finish”关闭对话框。
新建HelloWorld.java文件
右键点击Struts2_HelloWorld\Java Resources: src\tutorial,出现菜单
点击“New\Class”,出现对话框
在“Name”中键入HelloWorld,在“Superclass”中键入com.opensymphony.xwork2.ActionSupport,点击“Finish”关闭对话框。将HelloWorld.java的内容修改为:
package tutorial; 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; } }
在struts.xml中添加action映射(mapping)
<!DOCTYPE struts PUBLIC "-//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>HelloWorld.jsp</result> </action> </package> </struts>
新建SayHello.jsp
参考“新建index.html文件”步骤,弹出对话框
点击“Next”, 进入下一步
在“File name”键入SayHello.jsp,点击“Next”进入下一步
点击“Finish”关闭对话框,并将SayHello.jsp的内容修改为:
<%@ page contentType="text/html; charset=UTF-8" %> <%@ 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"> Name: <s:textfield name="name" /> <s:submit /> </s:form> </body> </html>
新建HelloWorld.jsp(请参考上一步),HelloWorld.jsp的内容为:
<%@ page contentType="text/html; charset=UTF-8" %> <%@ 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>
重新打包发布应用程序
先停止tomcat, 再将tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夹删除,参照“将应用程序打包到tomcat上”重新发布应用程序。
启动tomcat,运行测试
打开Internet Explorer,键入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp,窗口输出SayHello.jsp
在“Name”键入字符串(如World),点击Submit,转到HelloWorld.jsp页面
单元测试Hello World
在文章开始的时候提及,单元测试困难是Struts一大缺点。现在让我们在体验一下,在Struts 2.0中是如何进行测试的。
新建JUnit单元测试
右键点击Struts2_HelloWorld\Java Resources: src\tutorial,弹出点击“Next\Other”
选择“Java\JUnit\JUnit Test Case”,点击“Next”
选择“New JUnit 4 test”,在“Name”中键入HelloWorldTest,在“Class under test”键入tutorial.HelloWorld,点击“Next”
选中HelloWorld\execute方法,点击Finish。如果生成的HelloWorldTest.java文件的图标(Icon)出现红色交叉标志,请进行以下步骤添加JUnit 4的jar包。
右键点击Struts2_HelloWorld,出现菜单。
点击“Build Path\Add Libararis”,弹出对话框
选中“JUnit”,点击“Next”
选择“JUnit 4”,点击“Finish”关闭对话框,并将HelloWorldTest.java的内容修改为:
package tutorial; import static org.junit.Assert.assertTrue; import org.junit.Test; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldTest { @Test public void testExecute() { HelloWorld hello = new HelloWorld(); hello.setName("World"); String result = hello.execute(); assertTrue("Expected a success result!", ActionSupport.SUCCESS.equals(result)); final String msg = "Hello, World!"; assertTrue("Expected the default message!", msg.equals(hello.getName())); } }
运行单元测试
右键点击Struts2_HelloWorld\Java Resources: src\tutorial\HelloWorldTest.java,弹出菜单
点击“Run As\JUnit Test”,出现JUnit子窗口
绿色矩形表示,所有单元测试通过。
总结
上面的例子简单地演示了,Web 应用程序的基本操作,也即是,页面输入->Action处理->再输出到另外页面。Struts 2.0的简单易用、方便测试相信也会给大家留下不错的印象吧。我相信,Struts 2.0作为一个全新的Web架构,将会再次掀起Web开发的热潮。
发表评论
-
领导首页页面
2012-11-30 19:57 0<%@ page language="ja ... -
Hibernate Annotation应用
2012-05-04 10:46 1503@Entity @Table @Id @Column @Tra ... -
服务器证书安装配置指南(Weblogic)
2012-04-24 12:20 1116一、 生成证书请求 1. 安装JDK(可选) We ... -
jsp 导出excel
2011-09-21 21:41 1486excel文件是可以在jsp响应,通过输出相应xml,即可得到 ... -
eclipse相关插件安装
2011-06-15 20:02 10591.tomcatPluginV321.zip tomcat部 ... -
流程控制应用JPBM
2011-06-04 14:48 1607工作流(流程控制应用) 什么是工作流? 工作流是业务流程自动化 ... -
网上支付
2011-03-28 12:57 3158两种接入方案 相接与银 ... -
Hibernate Annotation
2011-03-01 08:54 1131简介: 在过去几年里,Hibernate不断发展,几乎成为Ja ... -
在Struts 2中实现文件上传
2011-02-11 16:09 853Struts 2是通过Commons FileUpload文件 ... -
Java加密技术
2010-12-31 11:51 758本篇内容简要介绍几种方法源码文件 如基本的单向加密 ... -
电子邮件开发应用
2010-12-20 12:48 9671.电子邮件发送 /* * html 电子邮件发送 ... -
Struts 2与AJAX
2010-12-18 08:29 653在当今——Web 2.0概念铺天盖地的Internet环境下, ... -
Strus 2的新表单标志的使用
2010-12-17 09:10 788Struts 2为大家提供了不少常用的很酷的表单标志,简化了我 ... -
Struts 2中的OGNL
2010-12-16 08:28 639本人是一个EL(Expression ... -
在Struts 2中实现CRUD
2010-12-15 08:08 760CRUD是Create(创建)、Read(读取)、Update ... -
在Struts 2中实现文件上传
2010-12-14 08:34 843实现原理 Struts 2是通过Commons FileUpl ... -
在Struts 2中实现IoC
2010-12-13 07:58 844IoC(Inversion of Control,以下译为控制 ... -
Struts 2的基石——拦截器(Interceptor)
2010-12-11 08:23 811首先,要跟大家道个歉 ... -
在Struts 2.0中实现表单数据校验(Validation)
2010-12-10 09:45 784在写前几篇文章的时候,有些朋友建议我的写一篇关于表单数据校验的 ... -
转换器(Converter)——Struts 2.0中的魔术师
2010-12-09 08:20 674在我已往的Struts 1.x项目经验中,有个问题不时的出现— ...
相关推荐
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单...
一、为Struts2.0做好准备 在开始Struts2.0的学习之旅前,首要任务是搭建开发和运行环境。这一步骤至关重要,它包括从Apache官方网站下载Struts2.0包,以及在Eclipse等IDE中创建新的Web项目。通过将Struts2.0的库...
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单...
1.为Struts 2.0做好准备 2.常用的Struts 2.0的标志(Tag)介绍 3.Struts 2.0的Action讲解 4.在Struts 2.0中国际化(i18n)您的应用程序 5.转换器(Converter)——Struts 2.0中的魔术师 在6.Struts 2.0中实现表单...
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单...
"struts2.0做文件上传关于所加载的错误包造成的问题心得" 1:commons-io-1.4.jar 做上传时,如果用的该包是1.0的就经常出经上传不成功问题 2:commons-fileupload-1.2.1.jar 做上传时,如果用的该包是1.0的就也经常出...
Struts 2.0框架中出现的许多特性旨在让Struts更容易使用: · 改进的设计: 与Struts 1相比,Struts 2的所有类都基于接口,核心接口独立于HTTP。这些API并不依赖服务器小程序API。 · 简化的Action: Struts 2 Action...
### Struts2.0拦截器详解 #### 一、拦截器概述 在Struts2框架中,拦截器(interceptor)是一种非常重要的机制,用于在执行Action前后进行一系列预处理或后处理的操作。拦截器可以用来执行如参数拦截、类型转换、输入...
这样做是为了让项目能够识别并使用Struts2.0框架的所有组件。 #### 配置Web应用 **4. 修改web.xml文件** 打开项目的web.xml文件,对其进行必要的修改,以便整合Struts2.0框架。这主要包括添加Struts2的过滤器...
一、为Struts2.0做好准备 在开始Struts2的开发之前,你需要确保环境已经准备就绪。首先,确保你的开发环境中安装了JDK,并且版本支持Struts2。然后,添加Struts2的依赖库到你的项目中,这通常通过Maven或Gradle的...
不过,如果你仍然需要在JDK1.4环境下工作,你可能需要使用更早版本的Struts框架,如Struts1,或者寻找能够兼容JDK1.4的Struts2版本,但请注意,这样做可能限制了你利用Struts2的一些高级特性和功能。 总的来说,...
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.enable.SlashesInActionNames" ...
DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="json_demos" extends="struts-default,...
【Java培训学习大纲】 本文将详细解读一份名为“java培训学习大纲.docx”的文档,该文档旨在指导...通过这样的全面学习,学员不仅能掌握扎实的Java技术,还能获得丰富的实战经验,为未来在IT行业中脱颖而出做好准备。
学员将通过8周的学习,按照特定的上课时间安排(平日晚上或假期全天),在理论与实践的结合中提升技能,为未来职场做好充分准备。课程还推荐了相关软件工具,如Rational Rose/Together用于建模,CVS/VSS/SVN进行版本...