6

我有一个 JSF 2 应用程序,其中包含一个 jar 文件,该文件又在其 META-INF 目录中包含一个 faces-config.xml。faces-config.xml 包含一个阶段监听器的声明。我想在不修改 jar 文件本身的情况下阻止安装此阶段侦听器。这可能吗?

4

1 回答 1

4

您不能阻止faces-config.xml解释 3rd 方 JAR 中的特定部分。

你基本上有2个选择:

  1. faces-config.xml通过添加到webappmetadata-complete="true"自己的faces-config.xml.

    <faces-config ... metadata-complete="true">
    

    请注意,这也会跳过第 3 方 JAR 类中的注释扫描。你基本上需要重新定义你想在 webapp 自己的faces-config.xml.


  2. 提供一个自定义Lifecycle实现LifecycleFactory,您可以通过它在<factory><lifecycle-factory>webapp 的faces-config.xml. 在该实现中,相应地覆盖以在跳过或继续之前addPhaseListener()执行例如检查。instanceof

于 2013-03-22T14:34:26.430 回答