JBoss 7 EL для метода без параметра - PullRequest
1 голос
/ 20 января 2012

Я пытаюсь взять приложение Java EE 6, которое отлично работает на GlassFish 3.1.1, и развернуть его на JBoss 7.0.2. Я сталкиваюсь с исключениями PropertyNotFound, когда пытаюсь перейти на страницы из-за различий в JBoss EL. Похоже, что JBoss EL не допускает выражения методов для методов без параметров вида:

<c:if test="${bean.calculateX('foo').size() > 0}">

В этом примере JBoss EL считает метод размера параметром. Я могу заставить его работать в JBoss, изменив его на:

<c:if test="${bean.calculateX('foo')[size] > 0}">

Но теперь это не будет работать в GlassFish. Есть ли совместимый способ сделать это?

1 Ответ

3 голосов
/ 20 января 2012

Это похоже на ошибку оценки EL на обоих серверах.Есть два очень похожих отчета об ошибках: JBoss AS7-2825 (исправлено в 7.1.0) и Glassfish 17628 (исправлено в 3.1.2).Эти исправления могут исправить и вашу проблему.В противном случае пришло время сообщить о новом.

Однако я бы предложил вместо этого использовать ключевое слово EL empty.Вот для чего.

<c:if test="${not empty bean.calculateX('foo')}">

Кстати, мне интересно, допустим ли синтаксис [size] согласно спецификации EL для представления не получающего метода.Это обозначение обычно используется для динамических свойств.

...