EL表达式:将null作为BigDecimal字段的值传递



我有一个具有BigDecimal属性的类。当我绑定到它的EL表达式并传递null-valueExpression.set(context, null)时,属性的新值变为BigDecimal.ZERO

有没有什么方法可以将null传递给BigDecimal字段而不将其转换为零?

您似乎运行的Tomcat版本至少为6.0.16或类似JBoss AS的派生版本。Tomcat的内置ApacheEL解析器确实可以为所有扩展Number的类执行此操作。您需要添加以下VM参数来禁用此行为(这确实是不直观的,但不幸的是严格按照EL规范):

-Dorg.apache.el.parser.COERCE_TO_ZERO=false

另请参阅JSP/EL规范第184期和Tomcat第42385期。

最新更新