JavaServer Faces
JavaServer Faces (JSF) 是用户界面框架或应用程序编程接口 (API),它使基于 Java™ 的 Web 应用程序的开发更加简单。
- 通过一组可复用用户界面组件轻松构造用户界面。
- 简化将应用程序数据迁入迁出用户界面的过程。
- 帮助在若干服务器请求间管理用户界面状态。
- 提供简单模型,以将客户机生成的事件连线至服务器端应用程序代码。
- 支持用于构建和复用的定制用户界面组件。
WebSphere Application Server 随附 Apache MyFaces 实现,它为用于 JSF 的代码提供基础。
产品随附的 JSF 运行时的版本位于正常运行时库位置,并且可用于所有使用 JSF API 的 Web 应用程序。JSF servlet 的装入按该运行时与 Web 应用程序打包在一起的方式处理。该捆绑版本包括可以更好地与 WebSphere Application Server 内置注释扫描和其他运行时组件集成的增强功能。
运行时中打包了 JSF 的规范相关类 javax.faces.* 以及 Apache MyFaces JSF 实现的 IBM® 已修改版本。
通常,使用此 API/Framework 的 Web 应用程序将 JSF API 和实现 Java 归档 (JAR) 文件嵌入到它们的 Web 应用程序归档 (WAR) 文件中。这些 Web 应用程序部署到 WebSphere Application Server 并在其中运行时,不需要这样做。只有在将这些 JAR 文件与 WAR 文件中任何 JSTL JAR 文件一起移除时,才需要该操作。但是,因为 JavaServer Faces 2.2 是 Java Platform, Enterprise Edition (Java EE) 平台的一部分,所以当 Web 应用程序在与 Java EE 技术兼容的 Web 容器上运行时,不会捆绑 JavaServer Faces 实现。如果 JavaServer Faces 实现是与 Web 应用程序捆绑在一起的,那么会忽略此 JavaServer Faces 实现,因为总是会优先处理由平台提供的 JavaServer Faces 实现。
WebSphere Application Server 的 JSF 运行时不支持为整个应用程序使用单个类装入器,因为在初始化期间 FacesConfig 初始化要求每个 JSF 模块都有一个类装入器。当应用程序包含多个 Web 模块且其中某一模块为 JSF 模块时,此支持不可用。所以,当应用程序包含多个 Web 模块且至少一个 JSF 模块时,必须使用多个类装入器。
对于使用不同 JSF 实现的情况,WebSphere Application Server JSF 引擎确定应用程序服务器运行时中使用 SUN RI 还是 Apache MyFaces。 当 JSF 引擎确定使用的实现后,将会在 Web 容器中注册正确的侦听器类。您无需将 com.sun.faces.ConfigureListener 或 org.apache.myfaces.StartupConfigureListener 添加到 web.xml 文件。
如果您使用不是产品随附的第三方 JSF 实现,请将配置保留设置为 MyFaces,将第三方侦听器添加到所需的 web.xml 文件中;然后将第三方实现 JAR 文件作为隔离的共享库添加到 Web 模块。由于使用隔离的共享库,JSF 或 JSTL 类的 Web 应用程序版本在 Application Server 之前装入。