04 2010 档案
摘要:最近做了几个Struts的J2EE项目,这段时间集中精力研究这个。今天在一本书上看到了关于Controller 的简要说明。简明扼要,看了让人眼前一亮。这里做些摘抄。 书上以一个简单的Controller为例。[代码]在这个Controller中1、定义了一个Request接口。并且有一个可以返回请求的具有独一无二名字的方法,这样就可以区分不同的请求。2、Response接口封装了之后可能要处理的...
阅读全文
摘要:一、使用test fixture 运行测试所需要的这个外部资源环境通常称作test fixture。 TestCase通过setUp和tearDown来自动创建和销毁fixture。在同一个TestCase里的测试方法可以共享fixture二、常用的断言方法及其说明 assertTrue assertFalse assertEquals assertNotNull assertNull asser...
阅读全文
摘要:bean标签库是一个实用标签的集合,提供与JSP中Web应用互交的方便访问。一、taglib指示器声明 <%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 注:和HTML标签库一样,在比较老的服务器上也要在WEB.xml中注册二、BEAN标签库标签 同样,这里不具体说明每个标签的用法,只指出每个标签使用的...
阅读全文
摘要:使用HTML标签库来创建表单,可以集成到Struts框架中。这个库的标签能自动发布表单控件,带有来自FormBean的数据。一、taglib <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> 设置使用HTML标签库时使用的前缀。 注:对于一些只支持JSP1.1的老服务器,需要在web.xml中设置&l...
阅读全文
摘要:stone 的 log4j配置详解Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 ...
阅读全文
摘要:目前,测试驱动开发正变得越来越流行,由于“存在的就是合理的”,这种开发方式必然有其优越之处。作为一个小小程序员,对新鲜技术的追求是工作的重要动力,相信大家都有同感吧。测试驱动开发是极限编程(XP)的重要组成部分,从字面上就可以看出,它是先有测试再有代码的。这听起来似乎有点奇怪,实际上,可以把测试用例当作需求,程序员的工作就是写出满足这种需求的代码,即让这些测试都能够通过。在...
阅读全文
摘要:一、web.xml 是标准的Web档案部署描述器。下面是一个简单项目的web.xml中的配置消息。[代码]解析:
阅读全文
摘要:MVC将用户接口分割成3个截然不同的部分。 一、视图 状态无关的组件,从模型中读取数据,简单的把模型中的值转化为对客户端有用的格式。 二、控制器 协调请求处理,将用户输入转变为模型更新和视图 。它就像一个主管,首先策划要做哪些更新和显示什么视图, 然后调用被选择的模式和视图以执行真正的策划。 三、模型 存储应用状态(诸如:数据库,JavaBean,文件,网络服务或者内存)。模型的工作是管理对该状态...
阅读全文
摘要:在测试驱动开发(Test-Driven Development TDD)的理念下,单元测试技术显得至关重要。在基于Struts项目中,会有大量封装业务流程的Action类,对它们的测试是必要的。但由于Struts1中Action与Servlet容器的耦合程度较深,对Action的测试比较困难(Action的execute方法需要HttpServletRequest和HttpServletRespo...
阅读全文
摘要:Apache Commons-logging使用实例本文将介绍如何在程序中使用Apache Commons-loggingauthor: ZJ 07-3-17Blog: http://zhangjunhd.blog.51cto.com/1.Commons-Loggin简介Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和...
阅读全文
摘要:OGNL使用小结(一)最近一直使用struts2,表现层采用JSP,用的struts2标签,支持OGNL。 OGNL中的# $ %使用场景: 1、“#”主要有三种用途: 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性: 名称作用例子parameters包含当前HTTP请求...
阅读全文
摘要:1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传...
阅读全文
摘要:1)提供的接口数量不完全相同。assertEquals支持boolean,long,int等等java primitiveType变量。assertSame只支持Object。2)比较的逻辑不同,结果可能不同。assertSame是对象直接比较。assertEquals能利用被比较对象提供的比较逻辑来进行比较。使得同样的条件下,两者的运行结果不一定相同。简单解释如下:assertEquals(Ob...
阅读全文
摘要:Web测试若采用容器外的单元测试技术,JUnit完成模型层中的各组件的单元测试,用StrutsTestCase完成控制层中的各种Action组件的单元测试。一、StrutsTestCase简介 StrutsTestCase专门负责测试Struts应用程序的测试框架,是JUnit测试框架的扩展,提供对Struts框架的控制器Action组件代码的单元测试的支持。 可以在sourceforge.net...
阅读全文
摘要:ActionContext介绍通过上面用户注册例子的学习,我们知道Xwork与Web无关性,我们的Action不用去依赖于任何Web容器,不用和那些JavaServlet复杂的请求(Request)、响应(Response)关联在一起。对请求(Request)的参数(Param),可以使用拦截器框架自动调用一些get()和set()方法设置到对应的Action的字段中。但是,仅仅取得请求参数的值就...
阅读全文
摘要:理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法。由JavaDoc可知,ActionSupport类实现了接口。com.opensymphony.xwork2.Action...
阅读全文
摘要:在使用struts2开发和学习的过程中,我们都应该知道实时查看源码的重要性,以下笔记是使用myeclipse6.5导入struts2.1.6源文件的过程首先到http://struts.apache.org/download.cgi#struts216下载struts-2.1.6-src.zip显示有20MB其实就4MB在使用使用struts2中需要使用xwork,xwork的源文件需要单独下载,...
阅读全文