科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用JSF/DWR/DOJO创建动态Web应用(1)

用JSF/DWR/DOJO创建动态Web应用(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文给出如何将JSF、DWR、DOJO集成在一起来创建丰富Web应用(该应用使用Portlet和Facelet)的方法。假定读者对这些框架和它们所提供的特性已有基本的了解。

作者:Ashish Sarin/宋玮 编译 来源:InfoQ中文 2007年12月10日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共4页)

DWR bean 转换器

Web应用通常使用DTO从Web层往服务层传递信息。本文例子应用使用另一级别的DTO,从Javascript往Web层传递信息。例如,当搜索产品时,用户可以输入如下信息:产品名称,产品编码、产品id已经相应的搜索类型(LIKE 或 EQUALS)。利用DTO,这些参数被传递到例子应用的Web层。Javascript中的关联数组(associative array —— 也称为命名数组)的概念被用来设置这些参数,接着DWR把这些关联数组转换到相应的DTO。关联数组中的名称必须与DTO中的属性名字匹配。

下面dwr.xml的配置信息展示了如何配置一个DTO:

<convert match="com.search.product.SearchCriteria" converter="bean"/>

使用这种方法使服务器端Java代码更整洁,因为你不必再显式地获取来自AJAX请求的每个请求参数值。

JSF的rendered属性

所有JSF HTML标签都有一个rendered属性,该布尔值决定了HTML窗口部件是否将显示给用户。当使用HTML模板时,可以达成同样的功能。这将要求创建一个表达式框架来处理在HTML中的表达式并显示/隐藏一个HTML片段。

<td><input type="button" class="inputButton" onclick="removeProduct('{0}');" 
  value="Remove" /></td>
</exp:if>

用于导航的 FacesRequest 或 HttpServletRequest

当用户点击产品详细信息页面上的back按钮时,产品搜索页面需要被显示。如果点击back按钮使用AJAX来处理,那么应用程序没有利用到定义在faces-config.xml文件中的导航规则。因此,在产品详细信息页面上使用JSF的HTML按钮组件,而不是使用发起HttpServletRequest(或AJAX请求)给服务器用以导航至另一个页面的HTML按钮,是一个不错的主意。

值得考虑的备选方案

Ajax4jsf

Ajax4jsf 为JSF组件提供了使用AJAX的方法,但是对Portlet支持在1.1.1版中提供。在创建例子应用的时候ajax4jsf还不支持Portlet。

基于HTML和CSS的树

联合使用 <li> HTML元素和CSS创建一个树形结构是可行的。但是这种树结构缺乏任何类型的事件处理模型,因此不适合高交互性的树窗口部件的要求。

RichFaces

RichFaces提供了带有AJAX功能的、丰富的JSF组件。RichFaces利用Ajax4jsf完成其AJAX功能。

关于作者

Ashish Sarin在开发/设计基于Java的Web应用程序方面已经有8年的经验。

参考文献

Dojo
Dojo是一个用Javascript写的开源DHTML工具包。更多信息请参考http://www.dojotoolkit.org/about

DWR
DWR —— Direct Web Reporting 使得在Java应用中使用Ajax更容易。更多信息请参考http://getahead.org/dwr/documentation

RichFaces
http://labs.jboss.com/jbossrichfaces/.

Ajax4jsf
http://labs.jboss.com/jbossajax4jsf/.

Facelets
https://facelets.dev.java.net/.

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章