首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

RichFaces 简介(3)

RichFaces 简介(3)

设置对于一个应用程序,最重要的东西是 JSF、Facelets 和        RichFaces 的实现者 —即实现这些功能的 JAR。这些 JAR 被包括在可下载的 WAR 的 lib 目录中(参见 小节),下面的列表标出了它们的版本。该列表假设您的 Web 容器支持当前的 EL 和 servlet API 版本。如果在运行该演示应用程序时遇到问题,请检查 JSF、Facelets 和 RichFaces 的需求(参见 )。您还应该查看 。                                                        
  • JSF 1.2 (包括在 Glassfish V2 中)
    • jsf-api.jar
    • jsf-impl.jar
  • Facelets 1.1.14
    • jsf-facelets.jar
  • RichFaces
    • richfaces-api-3.1.4.GA.jar
    • richfaces-impl-3.1.4.GA.jar
    • richfaces-ui-3.1.4.GA.jar
  • 虽然没有明确要求,但是 RichFaces 假定下面这些 JAR 也是可用的:
    • commons-beanutils-1.7.0.jar
    • commons-collections-3.2.jar
    • commons-digester-1.8.jar
    • commons-logging-1.0.4.jar
    • jhighlight-1.0.jar
下面 中显示了用于启用 JSF 的 web.xml 条目:
清单 2. web.xml 中需要的最少的 JSF 条目
1
2
3
4
5
6
7
8
9
<servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
</servlet-mapping>




显示了 Facelets 需要的另一个条目。该条目覆盖了默认后缀 .jsp。通常,对于 faces-config.xml 中的视图处理程序,Facelets 需要另一个覆盖条目,但是正如您将从下面看到的那样,RichFaces         将覆盖包括在 web.xml 中。
清单 3. 用于 Facelets 后缀的 web.xml 条目
1
2
3
4
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>




显示了 web.xml 中实现        RichFaces 所需的元素:
清单 4. 用于实现 RichFaces 的 web.xml 条目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>classic</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</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>




我将按照操作顺序解释清单 4 中的元素,而不是按照它们在 web.xml 中的出现顺序。
  • <filter><filter-mapping>RichFaces 使用一个过滤器来处理 Ajax 请求中接收到的代码。这些元素定义过滤器类(org.ajax4jsf.Filter),并将它映射到 中定义的 JSF Faces             Servlet。
  • <context-param><param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>RichFaces 需要知道应用程序中将使用 Facelet。这些元素执行这个任务,并有效地替换 faces-config.xml 中常规的 Facelets             条目。注意,Facelets 视图处理程序类是            com.sun.facelets.FaceletViewHandler。
  • <context-param><param-name>org.richfaces.SKIN</param-name>RichFaces 有一些内置的配色方案或皮肤。这些元素定义要在应用程序中使用的皮肤。            classic皮肤是中等程度的蓝色。
关于清单 2、3 和 4 中的条目,好的方面是,在所有应用程序中它们几乎都是一样的,实际上这就是样板代码。此外,还有一段代码也是在每个应用程序中可以看到的:是 的修改版,用于将 RichFaces 名称空间包括在应用程序的 XHTML 页面中:
清单 5. Facelets/RichFaces XHTML 文档的初始部分
1
2
3
4
5
6
7
8
9
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:f="http://java.sun.com/jsf/core"
     xmlns:h="http://java.sun.com/jsf/html"
     xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">

返回列表