Spring2.0引入的jndi-lookup内容模式
自从Spring2.0开始,便引入了XML Schema来管理BeanFactory、ApplicationContext的配置。无论是语义,还是表达、复用能力,XML Schema都强于DTD。使用XML Schema定义新的数据类型非常方便,当然,要掌握XML Schema还是要费一番功夫的。在RDBMS领域,存在很多O/R Mapping技术,比如Hibernate、JPA、TopLink、Kodo JDO等。在XML领域,也存在很多O/X Mapping技术,比如XML Beans、JAXB、Castor等。借助于它们,应用 ...
为了简化 JNDI API 的使用,Spring 2.0框架专门提供了org.springframework.jndi包。其中,JndiTemplateEditor类继承于PropertyEditorSupport类,供实现JndiTemplate对象的属性编辑器使用,即开发者能够通过字符串方式实现对JndiTemplate值得设置(或者在IDE中编辑它)。
通常,开发者可以通过如下4种方式对JNDI资源进行CRUD操作。
1. 单独使用JndiObjectFactroyBean:这种方式最常见(Spring1.x)。这是负责查找JNDI对象的FactroyBean。
2. 同时使用 ...
JNDI是JAVAEE 平台技术中最重要的基础支撑技术之一。他为各种Java对象进行命名,并采用目录层次结构管理它们,借助于JNDI API能够操控各种JAVA对象。实际上,JAVAEE5 引入各种Annotation注释(比如,@EJB,@Resource)底层采用JNDI API查找 JavaEE 容器受管资源(比如,EJB3.0组件,JDBC DataSource,JMS ConnectionFactory),并注入到那些应用了Annotation注释的JavaEE组件 (比如,Servlet,JSF后端Bean,EJB3.0组件)中。
Spring2.0针对JNDI API的使用提供了 ...
理解Tapestry引擎
Tapestry的核心是一个引擎对象,这个对象支撑和组织了应用程序的所有层面。引擎将所有的子系统绑定在一起形成了Tapestry应用程序。引擎主要涉及对服务器端状态的管理。引擎管理Infrastructure对象,而Infrastructure对象储存了大多数应用程序范围的状态(Infrastructure 对象中存放了多大39种Tapestry底层对象)。引擎同时也是管理持久页面属性的重要组成部分,当请求转移的时候,持久化页面属性允许页面拥有独立的内部状态。
每一个Tapestry应用程序都拥有一个独立的Servlet,用于连接Servlet容器和应用程序engin ...
在Tapestry中,每一个应用程序使用一个Servlet:org.apache.tapestry.ApplicationServlet。在传统的servlet应用程序中有多种Servlet,每一种Servlet表现了应用程序中可能发生的不同操作,而每一个servlet都需要编写新的代码,并对代码进行测试和调试。
编写Servlet代码比编写其他大多数java应用程序困难的原因之一,就是Servlet应用于不同的环境。Servlet容器会为每一个Servlet创建一个实例。也就是说,可能单一的Servlet会处理十几个并发的请求,而每一个请求又是独立线程。任何当前客户端的信息都将被储存在Ser ...
Tapestry的service
这是Tapestry框架的核心部分。Tapestry框架面向组件的开发方式,使得我们不再操心Servlet底层细节和URL中质询参数的结构。
Tapestry用于Servlet的底层对象
为了更好地理解Tapestry的service运作过程,我们首先需要熟悉一下Tapestry service中常用的核心对象。
1. IRequestCycle对象
该对象用于控制一个单一的请求周期。一旦客户段浏览器发出请求,Tapestry将做以下处理。
通过IEngineService对象响应URL;
决定响应页面;
释放所有资源。
在这个过程中,IRequestCy ...
Visit对象与Global对象是Tapestry框架的对象容器,我们可以在Visit对象和Global对象中存放任意信息。Visit对象和Global对象的区别在于他们的生命周期不同。
Visit对象
Visit对象是一个Tapestry应用程序的对象容器,用来存储应用程序逻辑和数据。这个对象能被应用程序中所有的页面和组件共享,并且包含Web应用程序中某一个客户端的特殊信息。该对象类似于HttpSession在典型Servlet应用程序中扮演的角色。实际上,Visit对象最终作为一个HttpSession的属性被存储。
为了在应用程序中使用一些与Session相关的数据,Tapes ...
页面类和页面事件
Tapestry框架是基于事件触发机制。当满足某些事件的触发条件时,Tapestry就会触发事件所对应的页面类中的方法。
页面类
Tapestry框架的思想是面向组件编程,因此页面也是一种特殊的组件。作为组件,它拥有一个规范文件,一个HTML模板,一个页面类和若干嵌入的组件。页面没有调用参数,因为页面是整个组件层次的最外层。页面与组件的差别在于他们的规范文件不同。
为了能够让Tapestry框架实例化页面实例,需要指定一个Java类作为页面类。通常可以在页面规范中指定页面类的路径,通过页面规范<page-specification>标签的class属性,例如:
...
监听方法
Tapestry框架属于事件触发机制,监听方法是我们在客户端触发服务器端Tapestry框架的主要方式。监听方法有多种形式,当表单form被触发提交的时候,或者当一个链接被单击的时候,就会触发监听方法。监听方法存在于我们的页面类或组件类中,例如,DirctLink组件和Form组件都拥有一个监听参数,我们可以使用一个”listener”字符串将我们页面类中的监听方法绑定在组件的监听参数上。
监听方法其实就是一个普通的功用非抽象方法,它可能携带有参数,也可能返回某种类型的值。Tapestry框架并不强制要求监听方法必须携带参数或必须拥有返回值,一个普通的功用方法一旦与某个组件的监听参数 ...
在Tapestry框架运行时,通过反射机制生成一个继承于我们页面类的子类,根据页面规范或组件规范中声明的属性,向这个反射生成的子类中添加标准的JavaBean属性,这就是属性指定的运作过程。在页面规范中声明的数据称为页面属性;在组件规范中声明的属性成为组件属性。其实,不论页面属性还是组件属性,他们都以完全一样的方式进行声明和使用。将Tapestry属性分为页面属性和组件属性,只不过为了方便称呼。
例如,在登录页面Home,为了拥有一个用户名和密码的输入值载体,我们在页面规范Home.page中声明两个页面属性。
<property name=”username”/>
<prope ...
- 浏览: 22190 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
DAO设计模式笔记
今日看了兄台的http://lincoln.javaeye.com/blog/3 ...
-- by barryzhong -
DAO设计模式笔记
受益匪浅啊!谢谢!
-- by barryzhong -
Tapestry学习笔记(4)
讲得很详细,很清楚,但本人有一疑问:literal是干什么用?
-- by llzgmz -
程序员之路,路在何方
你明年毕业哦,可以了,别灰心,看你的博客分类,比其他大学生强很多了,努力,加油百 ...
-- by JeffreyHsu -
程序员之路,路在何方
另外写帖子多分一下行吧,一堆字看着很累
-- by ouspec






评论排行榜