У меня есть 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?
Update 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 необходим некоторые другие параметры, чтобы изменить, чтобы использовать эти параметры ...
есть что-то, что не убедит меня с этим '<с: множества вар =«ANS» value = "$ {foo.getValue (null, null)}" /> '. При использовании JSTL вы не можете вызвать метод таким образом. Вы можете получить доступ к атрибутам вместо '$ {foo.value}', и соответствующий getter будет вызываться за кулисами. Кроме того, вы не можете передавать параметры, потому что предполагается, что геттер без параметров – MaVVamaldo
@maVVamaldo, в EL 2.2 возможен. –
Имея ту же проблему. Установите свойство COERCE_TO_ZERO как в файле Tomcat7 catalina.properties, так и в ServletContextLoader и не работает. – azgolfer