JSF(MyFaces2.x)整合Ajax(RichFaces3.3.x)
1.Ajax4jsf是一个Rich组件框架主要用于JSF应用程序的Rich用户界面开发。Ajax4jsf完全与JSF生命周期(Lifecycle)紧密结合。而其它框架只给你访问managed bean的能力。2.Ajax4jsf能够在AJAX request-response期间利用Action、值变化监听器(value change listener)、调用服务端校验和类型转换器。3.这个框架使用一个组件库来实现,它能够为现有的JSF页面添加AJAX功能而不需要编写任何Javascript代码或使用新的AJAX widget来代替现有的组件。4.Ajax4jsf能够实现整个页面范围的AJAX支持而不是传统的组件范围支持。5.除了核心AJAX功能之外,Ajax4jsf还支持各种资源的管理如图片、JavaScript代码和CSS样式表等,这个资源框架让你能够很方便把这些资源与你自定义组件的代码一起打包到Jar文件中。这个资源框架还有另外一个特性就是能够快速生成图片,创建的方式类似于使用Java graphic2D包创建图片一样。 ??
JSF(MyFaces2.x)整合Ajax(RichFaces3.3.x)
1.依赖的jar包
richfaces-api-3.3.3.Final.jar
richfaces-impl-jsf2-3.3.3.Final.jar
richfaces-ui-3.3.3.Final.jar
?
2.web.xml 配置
??? <context-param>
?????? <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
?????? <param-value>org.apache.myfaces.application.jsp.JspViewHandlerImpl</param-value>
??? </context-param>
??? <filter>
?????? <filter-name>richfaces</filter-name>
?????? <filter-class>org.ajax4jsf.Filter</filter-class>
??? </filter>
??? <filter-mapping>
?????? <filter-name>richfaces</filter-name>
?????? <servlet-name>myfaces</servlet-name>
??? </filter-mapping>
<!-- 其中<servlet-name>myfaces</servlet-name>为 FacesServlet的servlet-name -->
3.faces-config.xml 配置
?
<application>
?????? <view-handler>org.ajax4jsf.application.AjaxViewHandler</view-handler>
??? </application>
4.viewDemo.jsp
?
<h:form prependId="false">
??? <a4j:commandButton value="Get Info" action="#{viewCustInfo.initLink}" styleClass="btn1" reRender="customerInfos" limitToList="true"/>
??? <t:div id="customerInfos">
?????? <table id="colortb2" class="tb1" width="100%" border="0" cellspacing="0" cellpadding="0">
?????????? <tr>
????????????? <th width="5%">No.</th>
????????????? <th width="9%">Code</th>
????????????? <th width="10%">Name</th>
????????????? <th width="11%">Acount</th>
?????????? </tr>
?????????? <t:dataList var="info" value="#{viewCustInfo.custInfos}" rowIndexVar="index">
????????????? <tr>
????????????????? <td>
???????????????????? <t:outputText value="#{index+1}"/>
????????????????? </td>
????????????????? <td>
???????????????????? <t:outputText value="#{info.customerCode}"/>
????????????????? </td>
????????????????? <td>
???????????????????? <t:outputText value="#{info.customerName}"/>
????????????????? </td>
????????????????? <td>
???????????????????? <t:commandLink onclick="javascript: viewCustomerUser('#{info.id}'); return false;" value="Setting" styleClass="blink"/>
????????????????? </td>
????????????? </tr>
?????????? </t:dataList>
?????? </table>
??? </t:div>
</h:form>
?
?
【参考文章】1. http://jsweetland.livejournal.com/tag/jsf 2. http://community.jboss.org/wiki/RichFaces333andJSF20