Невозможно использовать методы доступа к методам в сеансе с использованием JSTL
У меня есть объект типа Employee в сеансе, который называется User, и он содержит метод
public String getType() {
return type;
}
Я хочу использовать это значение на странице.jsp, используя JSTL, и я использую код
${sessionScope.User.getType eq 'Supervisor'}
чтобы получить доступ к этому. Но это продолжает бросать исключение
PropertyNotFoundException: Property 'getType' not found on type model.Employee
и я не могу понять, почему. Пожалуйста помоги.
2 ответа
Решение
$
Оператор может прочитать любой объект в sessionScope
а также другой неявный объект
Просто введите это так
${User.type}
Итак, условие будет таким:
${User.type eq 'Supervisor'}
JSLT EL придерживается спецификации Java Beans.
Вместо использования имени метода используйте его короткое имя компонента
Для вашего кода это должно быть написано так:
${sessionScope.User.type eq 'Supervisor'}
Обратите внимание, "тип" не getType()