![](/img/trans.png)
[英]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.