我需要在Servlet过滤器中访问EL功能,但是......这意味着我不在FacesServlet生命周期内。
因此,我需要实例化一个ELContext。我不想继续实例化FacesContext,因为当应用程序转发到FacesServlet时,这可能会导致问题。
连连呢?谢谢!
答案 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。