第一章:简介
Rich Faces 是一个在现有的JSF技术基础上不依靠javascript方式就能实现Ajax技术的开源框架
Rich Faces 利用了JSF框架的验证机制、生命周期管理机制、管理动态与静态资源机制并把Ajax支持及高度的外观和风格的可定制化与JSF框架很好的结合在一起。
Rich Faces 允许:
Rich Faces 整合了JSF框架与Ajax技术,并且完全融入JSF整个生命周期,其它的框架仅仅提供访问后台Bean的方法,但Rich Faces 提供了事件响应及值改变监听器以及在Ajax请求响应周期调用服务器端的验证及转换的功能。
对现有的JSF应用提供了Ajax支持 它提供了二个组件库(核心Ajax组件和UI组件) 核心Ajax组件在可以在不用写任何Javascript代码的的前提下实现Ajax功能。Rich Faces 提供了对整个页面的Ajax支持而不是传统的基于组件的Ajax支持,当在页面触发一个Ajax请求以后,页面会在服务器端对应后台Bean的值改变后自动刷新JSF组件树中的值。
基于组件库,可以快速地创建复杂的用户界面,UI组件库对JSF应用增加了丰富的用户界面功能,它扩展了Rich Faces 框架所包含的巨大(并且不断增长)的Ajax组件和广范的界面支持。此外, Rich Faces组件可使用与其它第三方框架在同一页面上无缝结合,这样你可以有更多的选择来开发您的应用程序。
用户可以自定义植入Ajax支持的组件 我们一直在努力改善用于创建Rich Faces UI组件的组件开发工具包(CDK),这个工具包包括基于类似JSP语法的代码生成器和一个模版,这样就可以节省开发组件时很多例行式的过程。这个组件生成器应该就像一台工作良好的柴油机,它可以创建基于Ajax支持的一流的UI组件,比通过用原始的方法创建简单组件更容易。
方便的即时生成二进制资源 这些资源可以是图像,声音,Excel电子表格等等,例如使用大家熟悉的Java Graphics2D类库来画图然后即时显示在页面上就变成了可能。
风格与外观的高度可定制化 你可以使用Rich Faces 默认提供的组件风格,也可以自己修改风格。比如字体大小,颜色,背景色,样式等等。Rich Faces 使用这些工作更加轻松,你可以用更多的时间专注于业务的实现和Java代码上。
创建组件的同时测试其事件,监听,页面 在不久的将来,自动测试器将是我们的发展方向。当你创建组件的同时,它就会产生测试用例,这个测试器不仅仅只测试你开发的组件而是任何服务器端及客户端的功能,包括javascript代码。甚至不需要部暑到servlet容器中就可以完成这些测试。
Rich Faces UI组件今后会越来越简单易用,那么开发人员就可以节省更多的时间,入门门槛会越来越低,经验的积累也会越来越快,越来越简单。
第二章 技术要求
使用RichFaces 3.2.0 需要以下技术:
Java
JavaServer Faces
Java application server or servlet container
Browser (on client side)
Richfaces framework
2.1 JDK 版本
JDK 1.5 以上
2.2 支持的JSF实现框架
Sun JSF-RI - 1.2
MyFaces 1.2
Facelets 1.1.1 - 1.2
Seam 1.2. - 2.0
2.3 支持的服务器
Apache Tomcat 5.5 - 6.0
BEA WebLogic 9.1 - 10.0
Resin 3.1
Jetty 6.1.x
Sun Application Server 9 (J2EE 1.5)
Glassfish (J2EE 5)
JBoss 4.2.x - 5
2.4 支持的浏览器
Internet Explorer 6.0 - 7.0
Firefox 1.5 - 2.0
Opera 8.5 - 9.2
Safari 2.0-3.1
备注:
不支持 Safari 3.0 Beta.
以上所列项目是根据用户反馈信息做成,我们并不保证所列项目的完整性,如果你的环境未列出,并不说明你的环境与RichFaces 3.2.0不兼容。
如果您的环境不在上面所列但能支持RichFaces 3.2.0 我们非常欢迎您能反馈给我们。
第三章: 开始使用 RichFaces
3.1 下载RichFaces 3.2.0
最新发布的RichFaces可供下载,网址是:http://labs.jboss.com/jbossrichfaces/downloads
在JBOSS下的RichFaces 项目区
3.2 安装
解压 "richfaces-ui-3.2.0-bin.zip" 到指定文件夹.
拷贝 "richfaces-api-3.2.0.jar" , "richfaces-impl-3.2.0.jar" , "richfaces-ui-3.2.0.jar" 到 你项目的"WEB-INF/lib" 文件夹下 。
在你项目的"WEB-INF/web.xml" 文件中加入以下内容:
...
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>blueSky</param-value>
</context-param>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
在JSP页面上加入以下内容:
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
XHTML 页面加入:
<xmlns:a4j="http://richfaces.org/a4j">
<xmlns:rich="http://richfaces.org/rich">
3.3简单的Ajax实例 在这个实例中,我们仅仅使用一个带有一个FORM 和一对<h:inputText>和</h:inputText>标签的JSP页面。这个简单的例子仅仅是要求你在<h:inputText>中输入一些文字,并发送到服务器,然后服务器会取到这个值并做出响应。
3.3.1 JSP页面(echo.jsp)
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>repeater </title>
</head>
<body>
<f:view>
<h:form>
<rich:panel header="Simple Echo">
<h:inputText size="50" value="#{bean.text}" >
<a4j:support event="onkeyup" reRender="rep"/>
</h:inputText>
<h:outputText value="#{bean.text}" id="rep"/>
</rich:panel>
</h:form>
</f:view>
</body>
</html>
JSP页面上仅使用了<rich:panel>和<a4j:suport>二个标签,
<rich:panel>标签允许将页面中的无素放在其中。
<a4j:support>给相应的页面元素<h:inputText>增加了Ajax支持,引发该Ajax请求的事件为“onkyup”事件。所以,当<h:inputText>触发了这个事件,应用程序就会向服务器端发送一个Ajax请求,那么,我们在<h:inputText>中输入的值就可以在后台Bean与此无素对应的属性中得到我们输入的值。
<a4j:support>标签中reRender属性值就是用来定义我们将要刷新的对象,在此例中,我们要刷新的对象ID为:rep,也就是一个<h:outputText>,它的“value”值与<h:inputText>的value值都是绑定到后台BEAN bean.text属性,所以此例的最终效果是在<h:inutText>中输入的值会在<h:outputText>中显示出来。当然,如果我们需要刷新的是多个对象的话,我们只需要将它们的ID值列在reRender后面就可以了。
3.3.2 后台Bean
package demo;
public class Bean {
private String text;
public Bean() {
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
3.3.3 Faces-config.xml
下一步,你必须在faces-config.xml中注册你的后台Bean
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<managed-bean>
<managed-bean-name>bean</managed-bean-name>
<managed-bean-class>demo.Bean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>text</property-name>
<value/>
</managed-property>
</managed-bean>
</faces-config>
3.3.4 Web.xml
按以下方式修改web.xml文件:
<?xml version="1.0"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>a4jEchoText</display-name>
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>blueSky</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
现在,你的程序就可以运行了。
3.3.5 部署运行
部署到Tomcat 下,打开浏览器,输入:http://localhost:8080/a4jEchoText/echo.jsf 就可以了。
分享到:
相关推荐
《JavaServer Faces 2.0:全面指南》是一本深入介绍 JavaServer Faces 2.0 的书籍,不仅适合初学者入门,也适合有经验的开发者深入了解该技术的新特性和最佳实践。本书由行业内的专家撰写,确保了内容的准确性和实用...
本资源"**Eclipse从入门到精通(第二版)----源码**"提供了书籍《Eclipse从入门到精通(第二版)》的配套源代码,涵盖了从基础使用到高级开发的多个关键章节。这份源码旨在帮助读者更深入地理解Eclipse的工作原理,...
《Pro JSF and Ajax: Building Rich Internet Components》不仅是一本关于JSF和Ajax基础知识的入门书籍,更是一部涵盖了高级技术和实践经验的综合性指南。无论是初学者还是经验丰富的开发者,都能从中获得有价值的...
10. **富客户端组件(Rich Client Components)**:JSF社区和厂商提供了大量的第三方组件库,如PrimeFaces、RichFaces等,它们提供了丰富的富客户端组件,如图表、树形结构、日期选择器等。 通过阅读《JSF入门》...
在当今的软件开发领域,FLEX作为一款强大的富互联网应用程序(Rich Internet Application,RIA)开发框架,以其丰富的用户界面和高效的交互体验,深受开发者喜爱。而与Java的结合,更是将FLEX的应用推向了一个新的...
ICEFaces入门学习主要涵盖的是ICEFaces这一JavaServer Faces (JSF)组件库的使用和理解。ICEFaces是一款用于构建富互联网应用程序(Rich Internet Applications, RIA)的框架,它为开发者提供了丰富的用户界面组件和...
ICEfaces 是一个开源的JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIA)而设计。它提供了一套完整的组件库和强大的JavaScript库,使得开发人员能够轻松创建交互性强、...
RichFaces入门** - **下载RichFaces 3.2.0**:开始使用RichFaces的第一步是访问其官方网站下载最新版本的库,本示例使用的是3.2.0版本。 - **安装**:下载后,将库文件添加到你的项目类路径中,或者如果使用Maven或...
- **第2章:入门** - 提供快速上手指导,包括环境搭建、项目配置等。 - **第3章:a4j:* 标签、特性和概念** - 探讨了a4j命名空间中的标签,这些标签为JSF带来了AJAX支持。 - **第4章:开始使用Rich组件** - 介绍...
5. **入门示例**:这些示例通常包括XML配置文件(如faces-config.xml)、Java后端代码和JSF页面(.xhtml文件),展示了如何在实际项目中使用RichFaces组件和功能。 6. **集成与配置**:在Eclipse中,开发者需要将...
RichFaces 4 是一款功能强大的企业级组件库,它基于 JavaServer Faces (JSF) 技术标准,为开发者提供了一系列丰富的用户界面组件。这些组件不仅支持 Ajax 交互,还提供了高度可定制的主题皮肤功能,使得开发出的应用...
Seam是一种开源的企业级Java框架,它整合了多种技术和概念,如JavaServer Faces (JSF)、Java Persistence API (JPA)、Enterprise JavaBeans (EJB)、Contexts and Dependency Injection (CDI)以及RichFaces等,为开发...
XPages是IBM Domino平台上的一种开发框架,用于构建富互联网应用程序(Rich Internet Applications,RIA)。它引入了现代化的用户界面设计和交互方式,使得基于Lotus Notes/Domino的应用程序能够提供更加直观和动态...
**JSF (JavaServer Faces)** 是一种基于组件的Java Web应用开发框架,是Java EE标准的一部分。JSF 2.0作为JSF的一个重大版本更新,在保持原有优势的基础上,引入了诸多改进特性,使得开发人员能够更高效地构建动态...