AJAX和Web开发新技术:Dynamic Faces

兮兮丄

兮兮丄

2016-01-29 11:21

AJAX和Web开发新技术:Dynamic Faces,AJAX和Web开发新技术:Dynamic Faces
  Project Dynamic Faces是数个扩展JavaServer Faces技术的的项目之一。Project Dynamic Faces是一个创新型的项目,提供了向基于JavaServer Faces技术的应用软件增添Ajax功能的方法。它使我们能够让应用软件已经在使用的任何JavaServer Faces组件支持Ajax功能。我们无需对组件进行修改就能够使它们支持Ajax,我们也无需对应用软件进行任何修改就可以使它具有Ajax的魔力。

  要使应用软件具有Ajax魔力,我们必须首先确定应用中希望Ajax功能更新的网页部分。象基于JavaServer Faces技术的开发人员了解的那样,JavaServer Faces网页是由组件树表示的。利用Dynamic Faces,我们能够确定组件树中的哪个组件会受益于异步更新。就象使用Ajax更新代表网页的HTML DOM树的一部分那样,我们使用Dynamic Faces更新代表JavaServer Faces网页的组件树的一部分。因此,Dynamic Faces机制对于Ajax和JavaServer Faces开发人员而言是熟悉的。

  更重要的是,Dynamic Faces使用JavaServer Faces组件模式,使我们能够以一种更有效的方式利用Ajax功能。由于组件模式的协作特性,一些网页组件上的JavaScript事件能够触发该网页上任何数量的其它组件的异步更新。Dynamic Faces使得这些异步更新只是向服务器发送的一次Ajax请求的结果,而不是导致每次异步更新的Ajax请求的结果。

   Dynamic Faces还利用JavaServer Faces组件模式有效地管理客户机端和服务器端的状态。当Dynamic Faces更新客户机端上的组件状态时,它更新的只是已经改变的组件而不是整个树的状态。最好的一点是Dynamic Faces在后台完成所有这些操作,而且是以一种与JavaServer Faces技术的生命周期完全一致的方式完成的。

  除了简化向应用软件增添Ajax功能外,Dynamic Faces还向我们提供了增添Ajax功能的方法的灵活性。这篇文章将讨论利用Dynamic Faces使应用软件更具交互性和活力的三种方法:

  ·利用Dynamic Faces提供的定制ajaxZone标签确定组件树中需要被Ajax化的部分。

  ·利用Dynamic Faces提供的JavaScript库向单个组件增添Ajax功能。

  ·在一个网页中增添支持Ajax的组件,例如jMaki widget。

  在学习这些技术前,我们先来看看应用软件如何才能使用Dynamic Faces技术。

  开发利用Dynamic Faces的应用软件

  通过向一个标准的JavaServer Faces 1.2实现中增添Ajax功能,Dynamic Faces利用了JavaServer Faces技术的运行时间库的可扩展性。 Dynamic Faces的核心是定制的Lifecycle和ViewRoot实现。这二个实现是JavaServer Faces技术提供的标准Lifecycle和ViewRoot实现的扩展, 一个标准的Lifecycle对象代表JavaServer Faces生命周期的一个实例,一个标准的ViewRoot对象代表一个组件树的根。联合使用定制Lifecycle对象和定制ViewRoot对象,使 JavaServer Faces生命周期能够处理Ajax事务,在无需对整个网页更新的情况下重新显示组件树的一部分。这些定制实现服从于不支持Ajax请求的标准实现。

  为了使JavaServer Faces技术运行时间库知道定制Lifecycle对象的存在,我们必须在配置描述器中利用一个初始化参数向FacesServlet实例报告该对象。

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<init-param>
<param-name>javax.faces.LIFECYCLE_ID</param-name>
<param-value>com.sun.faces.lifecycle.PARTIAL</param-name>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
  此外,我们还必须将Dynamic Faces依赖的Java Archive(JAR)文件添加到应用软件的web archive(WAR)文件的lib目录中。因为Dynamic Faces是基于Java Platform Enterprise Edition 5(Java EE 5)的,我们所需要的几乎所有依赖关系都已经存在。最后一个依赖是Shale Remoting,Dynamic Faces利用它从Java类路径中加载JavaScript文件和其它资源。 Shale Remoting依赖于commons-logging,因此我们必须向应用软件提供commons-logging。

  最后,我们必须在使用它的每个网页中说明该Dynamic Faces标签库。 对于符合标准的非XML语法的JavaServer Pages(JSP)网页而言,这种说明如下所示:

<%@ taglib prefix="jsfExt" uri="http://java.sun.com/jsf/extensions/dynafaces" %>
  对于符合XML语法的JavaServer Pages(JSP)网页而言,这种说明如下所示:

展开更多 50%)
分享

猜你喜欢

AJAX和Web开发新技术:Dynamic Faces

电脑网络
AJAX和Web开发新技术:Dynamic Faces

AJAX和Web开发新技术DynamicFaces简介

Web开发
AJAX和Web开发新技术DynamicFaces简介

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XMLHttpRequest和AJAX入主Web开发

Web开发
XMLHttpRequest和AJAX入主Web开发

AJAX和传统的ASP无刷新技术比较

Web开发
AJAX和传统的ASP无刷新技术比较

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

XMLHttpRequest和AJAX虎视Web应用开发

电脑网络
XMLHttpRequest和AJAX虎视Web应用开发

AJAX技术vs传统的ASP无刷新技术

Web开发
AJAX技术vs传统的ASP无刷新技术

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《欢乐西游》大闹天宫通关攻略

《欢乐西游》大闹天宫通关攻略

PSV《刀剑神域 失落之歌》支线剧情触发说明

PSV《刀剑神域 失落之歌》支线剧情触发说明
下拉加载更多内容 ↓