我正在从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。
我用一个新罐替换了那两个旧罐子。看起来样本项目仍然运作良好。
我的问题:
除了更换那些2个罐子之外还有什么需要做的吗
这有什么特殊原因从2个罐变为1个?
非常感谢。
MORE:
我注意到了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。示例项目仍然有效。我应该做出这些改变吗?
答案 0 :(得分:9)
除了更换这两个罐子外,还有什么需要做的吗?
没有
任何特殊原因,这是从2个罐变为1个
在2.1.6发布之前,他们重构了构建系统符合Java EE Maven规则。另见Mojarra issue 2028。这导致两个众所周知的jsf-api.jar
和jsf-impl.jar
文件被单个javax.faces.jar
文件替换。
我将2.0和2_0更改为2.1和2_1。示例项目仍然有效。我应该做出这些改变吗?
你可以这样做。唯一的区别是faces-config
2.1 XSD定义了两个新元素而不是faces-config
2.0 XSD:
<facelet-cache-factory>
注册自定义FaceletCache
<redirect-param>
在重定向导航案例中指定请求参数。如果您不需要其中任何一个,那么如果您使用的是2.0或2.1 XSD则无关紧要。当使用JSF 2.1和2.0 XSD时,Mojarra 2.1内部没有2.0回退模式。