我有一个POJO:
public class Foo {
public String getValue(Integer arg0, BigDecimal arg1) {...}
}
我将它作为Spring MVC的模型参数放入JSP中,并尝试使用它:
<c:set var="ans" value="${foo.getValue(null, null)}"/>
但是在getValue
方法
arg0 = 0
arg1 = 0
而非预期
arg0 = null
arg1 = null
我试图在Tomcat 7.0.40和jetty 9.0.3上运行它
它是一些Tomcat错误,还是EL正常工作? 如何在EL中调用带有null参数的方法?
更新1: 几个来源和文档(http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html)表示添加JVM属性
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
解决它。
但是当我设定它时,没有任何事情发生。我把它设置正确
System.getProperty("org.apache.el.parser.COERCE_TO_ZERO")`
在运行时返回"false"
可能是Tomcat需要一些其他设置才能更改以使用此参数...
答案 0 :(得分:-1)
据我所知,当你使用Null时,任何程序都会将Null值初始化为原语的默认值。这意味着int值将始终为0,double 0.0,boolean将为false等。
您可以做的是进行一些额外的测试,并验证方法开头的值是否为空,如果是,则进行一些额外的测试。