表达式语言 3.0 在为第一个参数提供空值时引入了一个行为变化。 的第一个参数 coerceToType(Object obj, Class<?> targetType ) 的第一个参数提供空值时的行为变化。 现在,对非原始类型的空值默认强制返回 空值。 在以下示例中,强制转换为布尔值的空值现在会返回空值,而在 JavaServer Pages (JSP) 2.2 中,它会返回 false。
// factory 是 javax.el.ExpressionFactory Boolean bool=null;
factory.coerceToType(bool , java.lang.Boolean.class);
该规则在将原语包装程序对象作为第二个参数传递时会标记对 javax.el.ExpressionFactory coerceToType 方法的调用。
请复查应用程序以确保它能够在这种情况下处理空的返回值。
有关 Java EE 7 EL 3.0 实现的更多信息,请参阅 Expression Language 3.0 feature functions。