具有from-view-id的导航规则存在于多个库中

时间:2014-08-18 13:17:11

标签: jsf navigation

这是来自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

1 个答案:

答案 0 :(得分:1)

如果有多个具有相同名称的资源,则无论导航规则在何处定义,webapp中的资源始终都会取代外部库中的资源。因此,在您的特定示例中,将返回Project/WebContent/myapp/books/bookA.jsp并且ExternalProject/WebContent/myapp/books/bookA.jsp永远不会(注意应该是JSP的后继Facelets允许您使用{{3}来控制它}})。

这种机制使开发人员能够从webapp端撤消“损坏”或“无效”资源,而无需更改外部库和/或等待外部库维护人员提供带有错误修正/改进的版本。