JSF的库(Sun/Oracle Mojarra)

Ziy*_*ang 5 jar jsf-2 mojarra

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

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

我用一个新罐替换了那两个旧罐子.看起来样本项目仍然运作良好.

我的问题:

  1. 除了更换那些2个罐子之外还有什么我需要做的吗???

  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>
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 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则无关紧要.当使用JSF 2.1和2.0 XSD时,Mojarra 2.1内部没有2.0后备模式.