我有一个具有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期。