这是来自jsf-ibm.jar(MANIFEST.MF文件)的数据,以提供信息
关于正在使用的应用程序正在使用的jsf版本:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: IBM Corporation
Specification-Title: Java Server Faces
Implementation-Title: JSF Widget Library (JWL) - Base
Implementation-Version: JWL v3_1_13
Implementation-Vendor: IBM
Build-Version: 20120307.2306
Build-Date: March 7 2012
Copyright-Info: Copyright (c) 2003,2008, International Business Machin
es Corporation. All Rights Reserved.
在faces-config.xml文件中我有:
<navigation-rule>
<from-view-id>/myapp/books/bookA.jsp</from-view-id>
<navigation-case>
<from-action>#{controller.doSaveAction}</from-action>
<from-outcome>SUCCESS</from-outcome>
<to-view-id>/myapp/books/somePage.jsp</to-view-id>
</navigation-case>
</navigation-rule>
我的问题是关于from-view-id标签
对于业务需求,应用程序有2个项目,例如项目和外部项目。
这两个项目中的每一个都包含页面bookA.jsp:
- Project / WebContent / myapp / books / bookA.jsp和
- ExternalProject / WebContent / myapp / books / bookA.jsp
那么,faces-config.xml文件中定义的导航规则是否适用于两种情况(对于项目/应用程序 - 项目和外部项目)?或者你知道那样的东西会被指定在其他地方(目前,我不知道在哪里,我通过项目名称搜索了faces-config.xml文件,但没有发现...... :))?
非常感谢任何类型的信息 提前谢谢。
最好的问候,
mismas
答案 0 :(得分:1)
如果有多个具有相同名称的资源,则无论导航规则在何处定义,webapp中的资源始终都会取代外部库中的资源。因此,在您的特定示例中,将返回Project/WebContent/myapp/books/bookA.jsp
并且ExternalProject/WebContent/myapp/books/bookA.jsp
将永远不会(注意应该是JSP的后继Facelets允许您使用{{3}来控制它}})。
这种机制使开发人员能够从webapp端撤消“损坏”或“无效”资源,而无需更改外部库和/或等待外部库维护人员提供带有错误修正/改进的版本。