vad*_*shb 8 java tomcat el spring-mvc
我有一个POJO:
public class Foo {
public String getValue(Integer arg0, BigDecimal arg1) {...}
}
Run Code Online (Sandbox Code Playgroud)
我将它作为Spring MVC的模型参数放入JSP中,并尝试使用它:
<c:set var="ans" value="${foo.getValue(null, null)}"/>
Run Code Online (Sandbox Code Playgroud)
但在getValue
方法上
arg0 = 0
arg1 = 0
Run Code Online (Sandbox Code Playgroud)
而不是预期的
arg0 = null
arg1 = null
Run Code Online (Sandbox Code Playgroud)
我试图在Tomcat 7.0.40和jetty 9.0.3上运行它
它是一些Tomcat bug,还是EL工作的正确方式?如何在EL中调用带有null参数的方法?
更新1: 几个来源和文档(http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html)说添加JVM属性
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
Run Code Online (Sandbox Code Playgroud)
解决它.
但是当我设定它时,没有任何事情发生.我把它设置正确
System.getProperty("org.apache.el.parser.COERCE_TO_ZERO")`
Run Code Online (Sandbox Code Playgroud)
"false"
在运行时返回)
可能是Tomcat需要一些其他设置来改变使用这个参数...
mih*_*908 -1
据我所知,当您使用 Null 时,任何程序都会将 Null 值初始化为基元的默认值。这意味着 int 值将始终为 0、double 0.0、boolean 将为 false 等。
您可以做的是进行一些额外的测试并验证方法开头的值是否为空,如果是,则进行一些额外的测试。
归档时间: |
|
查看次数: |
1162 次 |
最近记录: |