使用JSF和JSR168开发AJAX应用程序
一、介绍
AJAX是一个热点,也逐渐变成了下一代互联网的标准,因为它提供了很多有益的特征,包括:
(1)提高了用户的接受性和生产力,和桌面应用一样;
(2)容易部署,其立即更新对所有用户有效;
(3)连接标准且只依赖于广泛的部署技术;
(4)对已存在的Web应用,易于增量更新;
(5)有一个成功的组织——the OpenAjax Alliance(AJAX联盟),背后有很多重量级公司支持。
其缺点在于:开发困难,其异步通讯意味着难于设计、调试和维护。
二、Java平台
对开发者来说,有两个服务端技术能用于在AJAX开发中克服障碍:
(1)JSF
JavaServer Faces是一个Java标准,基于Struts的经验。它能加速Web应用开发,并能整合到开发环境,如Oracle JDeveloper,IBM/Rational Application Developer和Sun Studio Creator,以及为JSF准备的Web服务器,例如IBM Webshpere应用服务器,BEA Weblogic和Oracle应用服务器。
(2)Portals
像那些与JSR168标准一致的技术,在内容集合方面提供了许多优点,如:单点登陆(Single Sign-on),个性特征显示,带持久化和可定制交付等。
本文主要是讲解整合JSF到JSR168 portals中,然后在Portals中怎样扩展这些JSF组件来提供Ajax行为。
第一章
整合基本JSF组件到Portals
一方面,JSF规范支持Portlet通过abstract API来部署用例,但其参考实现不能执行,似乎是JSR168 Portlet环境的问题。在本上下文,JSF Portlet bridge reference implementation或者与你的特殊的JSF实现一致的桥,连同缺省的JSF参考实现是需要的。
即使JSF Portlet被打包成regular JSF应用程序,一些不同仍然存在。使用JSF技术来创建一个Portlet的附加步骤如下:
(1)复制jsf-portlet.jar Portlet bridge到你的JSF应用程序的WEB-INF/lib目录下;
(2)增加一个新的portlet.xml Portlet部署描述符文件在WEB-INF目录下;
下面是一个典型的portlet.xml部署描述符文件,其INIT_VIEW 参数被你的JSP页所取代。
-----------------------------------
JSF Portlet
jsfPortlet
JSF Portlet
Portlet init view page
com.sun.faces.portlet.INIT_VIEW
/index.jsp
text/html
VIEW
JSF Portlet
jsfPortlet
-----------------------------------
(3)避免任何,
(4)只使用JSF自身的标签,确保ID在不同的Portlet下的唯一性。
-----------------------------------
-----------------------------------
(5)部署Portlet WAR文件。
(未完,再次继续)