я использую JSF 2.0 с primefaces над JBoss 7. В некоторой части кода, у меня есть следующие:EL Выражение разбора целое до тех пор,
public void setItemValue(int value) {
this.value = value;
}
и в XHTML:
<p:commandButton ajax="true" value="Button" update="@form"
action="#{bean.setItemValue(1)}"/>
Проблема в том, что когда я нажимаю кнопку, я получаю javax.el.MethodNotFoundException
, говоря, что setItemValue(java.lang.Long)
не существует. Конечно, это не так, это должно быть значение int или Integer! Кто-нибудь видел эту проблему? есть ли альтернатива, кроме изменения моего метода, чтобы получить длинный? Благодаря!
EDIT: Просто скачан SNAPSHOT JBoss 7.2, и он отлично работает на нем. Похоже, его ошибка в JBoss 7.1.1 :(
Попробуйте с f: setPropertyActionListener или # {bean.setItemValue ('1')} –
Вторая попытка: 'Метод не найден: bean.setItemValue (java.lang.String)'.Но первая попытка сработала! Плохая часть заключается в том, что я все еще не могу передать «Integer» или «int» методу через jsf, но это хороший обходной путь :) – Montolide
То же самое с Tomcat 7.0.26. Переход на Tomcat 7.0.28 исправил его для меня. Я действительно думаю, что литералы в EL действительно длинны, но мне нравится тот факт, что метод с Integer найден как совпадение в Tomcat 7.0.28. –