[英]Empty Mysql field (NULL) ends up being a string “null” in Java
[英]Calling method with null parameters in EL ends up in 0 being passed instead of null
我有一个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和码头9.0.3上运行它
是某些Tomcat错误,还是EL工作的正确方法? 如何在EL中使用空参数调用方法?
更新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需要更改一些其他设置才能使用此参数...
据我所知,当您使用Null时,将使用任何程序将Null值初始化为基元的默认值。 这意味着int值将始终为0,双精度为0.0,布尔值为false等。
您可以做的是进行一些附加的测试,并在方法开始时验证值是否为null,如果是,则进行一些附加的测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.