Jsf 重新排序自定义统一表达式语言解析器
我正在尝试编写一个自定义表达式语言(EL)解析器。此解析器的目的是拦截对某个Bean的方法调用,以添加第二个参数。我已经编写了一个自定义EL解析器,它覆盖Jsf 重新排序自定义统一表达式语言解析器,jsf,el,resolver,Jsf,El,Resolver,我正在尝试编写一个自定义表达式语言(EL)解析器。此解析器的目的是拦截对某个Bean的方法调用,以添加第二个参数。我已经编写了一个自定义EL解析器,它覆盖invoke-方法来执行我想要的操作。我还根据需要将解析器放入faces config.xml中 不幸的是,我的项目中有一个依赖项,它也声明了自定义EL解析器,并且在解析器链中将它们放在我的EL解析器之前。由于另一个解析器已经处理invoke-方法,因此我的自定义invoke-方法永远不会被调用 有没有办法重新排序冲突解决程序,以便首先调用我的
invoke
-方法来执行我想要的操作。我还根据需要将解析器放入faces config.xml
中
不幸的是,我的项目中有一个依赖项,它也声明了自定义EL解析器,并且在解析器链中将它们放在我的EL解析器之前。由于另一个解析器已经处理invoke
-方法,因此我的自定义invoke
-方法永远不会被调用
有没有办法重新排序冲突解决程序,以便首先调用我的冲突解决程序?我知道Apache MyFaces提供了一种订购解析器的机制,但不幸的是,我无法让MyFaces在我的项目中工作。将EL解析器放在一个单独的容器中,最终作为JAR放在webapp的
/WEB-INF/lib
中。在web fragment项目的faces config.xml
中,声明排序为“在其他人之前”,如下所示
<ordering>
<before>
<others />
</before>
</ordering>
需要注意的是,这会影响整个
faces config.xml
谢谢。我希望有另一种方法,但我会尝试一下,并在一切正常时将其标记为公认的答案。
<ordering>
<before>
<name>nameOfThatOtherDependency</name>
</before>
</ordering>