欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

通过JSF 2实现可重用的Ajax化组件(1)(2)

来源: javaer 分享于  点击 10696 次 点评:134

图3和图4显示了运行中的自动完成字段。在图3中,在字段中输入Al之后,国家列表将缩减至使用这两个字母开头的名称:

使用Al开头的完成项目
 图3.使用Al开头的完成项目

同样,图4显示了在字段中输入Bar之后显示的结果。列表仅显示以Bar开头的国家名。

以Bar开头的完成项目
 图4.以Bar开头的完成项目

使用自动完成组件

复合组件:基础如果您不熟悉如何实现JSF2复合组件,那么您可以从“JSF2简介,第2部分:模板及复合组件”这篇文章中了解基本知识。

.Locations自动完成字段是一个JSF复合组件,并应用于facelet,如清单1所示:

清单1.facelet

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <html xmlns="http://www.w3.org/1999/xhtml" 
  4.       xmlns:h="http://java.sun.com/jsf/html" 
  5.       xmlns:util="http://java.sun.com/jsf/composite/util"> 
  6.    <h:head> 
  7.       <title>#{msgs.autoCompleteWindowTitle}</title> 
  8.    </h:head> 
  9.  
  10.    <h:body> 
  11.       <div style="padding: 20px;"> 
  12.          <h:form> 
  13.             <h:panelGrid columns="2"> 
  14.                #{msgs.locationsPrompt}  
  15.                <util:autoComplete value="#{user.country}" 
  16.                      completionItems="#{autoComplete.countries}" /> 
  17.             </h:panelGrid> 
  18.          </h:form> 
  19.       </div> 
  20.    </h:body> 
  21. </html>   
  22.  

清单1中的facelet通过声明适当的名称空间—util—以及借助组件的相关标记<util:autoComplete>)来使用autoComplete复合组件。

注意清单1中<util:autoComplete>标记的两个属性:

•value是名称为user的托管bean的国家属性。

•completionItems是字段的完成项目的初始集。

User类是一个简单的托管bean,专为本例而设计。其代码如清单2所示:


相关文章

    暂无相关文章
相关栏目:

相关文章

    用户点评