防止从jsf 2中包含的jar中安装阶段侦听器



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

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

你基本上有两个选项:

  1. 通过将metadata-complete="true"添加到webapp自己的faces-config.xml来阻止第三方JAR中的整个faces-config.xml被解释。

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

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


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

相关内容

  • 没有找到相关文章

最新更新