5

我正在从http://javaserverfaces.java.net/download.html下载 JSF 的 Sun/Oracle Mojarra 实现

我下载了最新的 -2.1.9 二进制文件。它只有一个 jar - javax.faces-2.1.9.jar。我有一个示例项目,我相信它使用的是较旧的 2.0 版本,其中包括 2 个 jar - jsf-api.jar 和 jsf-impl.jar。

我用一个新罐子替换了那两个旧罐子。看起来示例项目仍然运行良好。

我的问题:

  1. 除了更换那两个罐子外,我还需要做什么???

  2. 有什么特殊原因,这是从 2 个罐子变成 1 个罐子的吗?

非常感谢。

更多的:

我注意到我的 faces-config.xml 中的版本

<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
</faces-config>

我将 2.0 和 2_0 更改为 2.1 和 2_1。示例项目仍然有效。我应该做出这些改变吗?

4

1 回答 1

9

除了更换那两个罐子外,我还需要做些什么吗?

不。


有什么特殊原因,这是从 2 个罐子变成 1 个罐子的吗?

在 2.1.6 发布前后,他们重构了构建系统以符合 Java EE Maven 规则。另见Mojarra 问题 2028。这导致两个众所周知的jsf-api.jar文件jsf-impl.jar被一个javax.faces.jar文件替换。


我将 2.0 和 2_0 更改为 2.1 和 2_1。示例项目仍然有效。我应该做出这些改变吗?

你可以这样做。唯一的区别是faces-config2.1 XSD定义了两个新元素,而不是faces-config2.0 XSD

  • <facelet-cache-factory>注册一个自定义FaceletCache
  • <redirect-param>在重定向导航案例中指定请求参数。

如果您不需要它们中的任何一个,那么您使用的是 2.0 还是 2.1 XSD 都没关系。当使用带有 2.0 XSD 的 JSF 2.1 时,Mojarra 2.1 内部没有 2.0 后备模式。

于 2012-06-22T04:39:00.503 回答