我BigDecimal有财产课。当我将其绑定到EL表达式并传递null时valueExpression.set(context, null),property的新值将变为BigDecimal.ZERO。
BigDecimal
valueExpression.set(context, null)
BigDecimal.ZERO
有什么方法可以将null传递给BigDecimal字段而不将其转换为零吗?
您似乎正在运行至少版本为6.0.16的Tomcat或类似JBoss AS的Tomcat。Tomcat内置的Apache EL解析器确实可以对所有扩展类执行此操作Number。您需要添加以下VM参数来禁用此行为(这确实不直观,但不幸的是严格按照EL规范严格执行):
Number
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
另请参见JSP / EL规范第184期和Tomcat第42385期。