結束了我有一個POJO:與EL零的參數調用方法0被傳遞,而不是空
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需要一些其他的設置更改爲使用此PARAM ...
有一些不具有這種' '。在使用JSTL時,您不能以這種方式調用方法。您可以訪問屬性,而不是'$ {foo.value}',相應的getter將在幕後調用。此外,你不能傳遞參數,因爲它假定吸氣器是無參數的 –
MaVVamaldo
@maVVamaldo,在EL 2.2中是可能的。 –
有同樣的問題。在Tomcat7的catalina.properties文件和ServletContextLoader中都設置COERCE_TO_ZERO屬性,並且不起作用。 – azgolfer