我有以下代码,我正在寻找另一种方法来执行此操作。
public static RequestContextData getRequestContextData() {
FacesContext fc = FacesContext.getCurrentInstance();
ExpressionFactory ef = fc.getApplication().getExpressionFactory();
MethodExpression me = ef.createMethodExpression( fc.getELContext(), "#{requestContextData.getRequestContextData}", String.class, new Class[0]);
Object o = me.invoke(fc.getELContext(), null);
RequestContextData request = (RequestContextData) o;
return request;
}
我发现它在升级到tomcat 8之后会导致问题.ELContext已经解决,之后使用此代码它将不再被解析。我已经尝试使用托管属性,但这不会起作用。
增加1: 堆栈如下所示:
ELContext在BeanELResolver和xxx中是相同的。这导致xxx在BeanELResolver中用false覆盖已解析属性的故障,然后返回一个PropertyNotFoundException。