Невозможно использовать методы доступа к методам в сеансе с использованием 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()

Другие вопросы по тегам