如何在没有活动FacesContext的情况下生成ELContext?

时间:2009-11-05 00:10:34

标签: java jsf java-ee

我需要在Servlet过滤器中访问EL功能,但是......这意味着我不在FacesServlet生命周期内。

因此,我需要实例化一个ELContext。我不想继续实例化FacesContext,因为当应用程序转发到FacesServlet时,这可能会导致问题。

连连呢?谢谢!

3 个答案:

答案 0 :(得分:2)

最好使用PhaseListener代替Filter

答案 1 :(得分:1)

由于我正在编写Web框架,因此无法使用PhaseListener,这必须在Servlet过滤器内完成。

但是,我确实在Seam Solder(WeldX)CDI模块中找到了解决方案 - 这只适用于在CDI上运行。

http://docs.jboss.org/weld/extensions/reference/latest/en-US/html/elextensions.html

答案 2 :(得分:0)

我不确定这样做是否有意义。在JSP上下文中,您将能够解析JSP伪像;在JSF上下文中,您将能够解析JSF工件。在Filter中,这些人工制品将无法供您使用。

如果您只想针对您定义的对象解析表达式,则可以create your own context(如果您还想创建表达式,则可能需要知道平台的ExpressionFactory类。)

可能有更好的方法来实现您正在做的任何事情,例如BalusC's suggestion of a PhaseListener