首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么决定了JSF版本?容器还是faces-config?

什么决定了JSF版本?容器还是faces-config?
EN

Stack Overflow用户
提问于 2012-02-17 22:14:46
回答 1查看 5.2K关注 0票数 6

我目前在JBoss as4.3上运行一个遗留的JSF应用程序。我相信这实现了JSF 1.2。但是,当我查看faces-config时,我发现它使用的是JSF1.1DTD。

我使用的是哪个版本的JSF?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-17 22:24:32

JSF实现JAR文件的/META-INF/MANIFEST.MF文件中提供了确切的JSF实现版本信息。它通常位于清单文件的底部,如下所示:

代码语言:javascript
复制
Implementation-Title: Mojarra
Implementation-Version: 1.2_12-b01-FCS
Implementation-Vendor: Sun Microsystems, Inc.

可以使用ZIP工具打开JAR文件。对于Sun / Mojarra,文件名是jsf-impl.jar,有时已经有确切的版本号作为后缀,比如jsf-impl-1.2_12-b01-FCS.jar。如果您使用的是JBoss 4.3.x提供的JSF实现,那么可以在$JBOSS_HOME/server/<Profile>/deploy/jboss-web.deployer/jsf-libs文件夹中找到该文件。如果您在/WEB-INF/lib中提供了自己的JSF实现,并将web.xml配置为告诉JBoss使用它,那么您需要在/WEB-INF/lib中提供的实现中签入它。

或者,您可以通过编程方式获取它:

代码语言:javascript
复制
Package jsfPackage = FacesContext.class.getPackage();
String implTitle = jsfPackage.getImplementationTitle();
String implVersion = jsfPackage.getImplementationVersion();
String implVendor = jsfPackage.getImplementationVendor();

至于faces-config.xml,您还可以使用它来控制应用程序的版本。因此,如果您将其声明为符合JSF 1.1规范,那么即使是JSF 1.2/2.0实现也将在JSF 1.1“兼容性模式”下运行。但是,当您实际使用的是JSF1.1实现时,您不能将其声明为符合JSF1.2/2.0这样的更新版本。它要么出错,要么被忽略。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9329778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档