Сегодня я читал урок, в котором я целый час чесал голову.Рассмотрим:
public class MyClass {
public int getTotal() {
amount = 100;
return amount;
}
}
и выдержку из JSP:
<p>Total: ${objectOfTypeMyClass.total}</p> //object instantiated elsewhere
Нигде в коде не было ни одной переменной экземпляра с именем " total ", когда-либо объявленной или использованной.Единственной ссылкой на слово «общее» во всем проекте (кроме JSP) был метод getTotal () .
Так что после некоторого отчаянного эксперимента с последним рвом, кажется,этот язык выражений оценивает $ {someObject.var} как "вызов getVar () метода someObject объекта.
, с которым я работалэто длинное учебное пособие в течение более недели, в котором мы думали, что $ {someObject.var} говорит "напрямую получить сохраненную переменную экземпляра" var"из someObject .
Неужели я все время ошибался и верно ли мое наблюдение, что для ссылки на любую переменную экземпляра с использованием EL необходимо предоставить соответствующий метод получения с именем getVarname () где " Varname"- это имя переменной экземпляра?
Кроме того, EL, похоже, не учитывает регистр в этом отношении.В моем примере выше, «total» в $ {objectOfTypeMyClass.total} - все строчные, где метод getTotal () имеет заглавную букву «T».
Ив то время как мы находимся, почему нам не нужно создавать экземпляр переменной "total"?Я предполагаю, что EL на самом деле не ссылается на переменную экземпляра ... просто метод получения?
Что дает?