问:什么是 JavaServer Faces 技术?
答:JavaServer Faces 技术是一个构建 web 应用程序的用户界面的框架。JavaServer Faces 技术包括:
利用 JavaServer Faces 技术提供的简单、定义良好的编程模型,不同层次的开发人员可以在页面中组装可重用的 UI 组件、让这些组件连接到一个应用程序数据源、以及将客户机生成的事件写入服务器端事件处理程序,从而可以迅速并且容易地构建 Web 应用程序。这些 web 应用程序可以利用 JavaServer Faces 技术的强大能力处理所有复杂的服务器用户界面管理问题,使应用程序程序开发人员可以将精力集中到他们的应用程序代码上。
问: JavaServer Faces 技术有哪些优点?
答: JavaServer Faces 技术的主要优点包括:
问: JavaServer Faces 技术的目标用户有哪些?
答: 因为JavaServer Faces 技术所具有的可扩展性和容易使用的特性,范围广泛的开发人员和 web 页面设计人员都可以利用 JavaServer Faces 技术的好处。这些用户包括:
问: JavaServer Faces 规范是由谁制定的?
答: 一些重要的业内人士与 Sun 共同定义了 JavaServer Faces 规范的第一个草案。专家组成员的完整名单请参阅JSR-127。
问:JavaServer Faces 技术、Struts 和 Sun Java System Application Framework(JATO) 的区别是什么?
答: Sun Java System Application Framework (以前称为 JATO)和 Struts 是流行的 Java Web 应用程序框架。JSR-127 的目的是为 Java web 应用程序定义一个用户界面框架,这样就与当前 Sun Java System Application Framework 和 Struts 的功能有了一些重叠。不过, JSR-127 与 Sun Java System Application Framework 和 Struts 是有区别的,因为它侧重于为用户界面提供一个组件模型。JATO 扩展了模型-视图-控制体系结构,它使用基于 J2EE 的设计模式,具有一个可扩展的同时又能马上使用的实现。Struts 更多是在表单或者页面水平上封装用户界面。
理想的方案 – 我们正在朝这个方向努力 – 是让 JavaServer Faces 技术与 Struts 和 Sun Java System Application Framework 共同工作。这意味着将来基于 Sun Java System Application Framework 或者基于 Struts 的实现将使用 JavaServer Faces 组件完成页面中组件级别的功能(呈现、事件等),但是继续使用它们自己的应用程序模型处理更高级别的功能,如表单和操作。
具体的实现细节仍然在 Sun Java System Application Framework 和 Struts 小组的帮助下正在制定当中,在 JSR-127专家组中也有他们的代表。
问:JavaServer Faces 技术与 JavaServer Pages 标准标签库(JSTL)有什么关系?
答:JSTL设计用于与作为 JavaServer Faces 技术的一部分的 JSP 标签库共同工作。例如,在 JavaServer Faces 教程中的 Performing Localization 一节描述了如何在 JavaServer Faces 应用程序中使用 JSTL 国际化功能。
问: JavaServer Faces 技术与 JavaServer Pages (JSP) 技术有什么关系?
答:1.0 版本的 JavaServer Faces技术依赖于 JSP 1.2。因为 JSP 2.0 是 JSP 1.2 的超集,所以1.0 版本的 JavaServer Faces 技术有可能使用 JSP 2.0。未来版本的 JavaServer Faces 规范将可以更好地利用 JSP 2.0。
问:有哪里可以找到有关 JavaServer Faces 技术的更多信息?
答:有关 JavaServer Faces 技术的更多信息请参阅 JavaServer Faces Tutorial。如果在本常见问题中没有回答您的问题,可以咨询 JavaServer Faces Forum。
问:如何将 JavaServer Faces 应用程序部署到其他 Web 容器中?
答:请参阅Deployment Guide。
Early Access 版本 4 的问题
问:在 EA4 版本中增加了哪些新功能?
答:在 EA4 中新增加的三个主要功能为:
问:在试图运行我的应用程序时,看到这个异常: javax.servlet.ServletException: Cannot find FacesContext。如何改正它呢?
答: 您需要遵照在 JavaServer Faces 教程中Writing the web.xml File和 Invoking the FacesServlet 中的指导。
问:在运行 helloDuke 和 guessNumber 示例时,我得到像这样的异常: javax.faces.FacesException: org/apache/commons/collections/ArrayStack ... 如何改正它呢?
答:这些例子都是假设开发人员使用 Java Web Service Developer Pack 运行它们的。由于 Java WSDP 包含一些 JavaServer Faces 应用程序所需要的 JAR 文件,所以这些 JAR 文件没有拷贝到应用程序 WAR 文件中。您看到的这个异常是由部署环境没有包含所需要的 commons-collections.jar 这一事实所导致的。
要让这些例子可以正常工作,必须在部署环境的common/lib目录中、或者在这些例子的 WAR 文件中的WEB-INF/lib目录中加入在 JavaServer Faces 教程中 Including the Required JAR Files 一节列出的所有 JAR 文件。
在将来的版本中,这些例子将包括所有需要的 JAR 文件,这样它们就可以在其他兼容的配置中运行。