Таким образом, все мы знаем это #{someBean.value}
попытается надеть содержание некоторого свойства someBean
названный value
. Это будет искать getValue()
. Однако, что, если это свойство boolean
? Это будет искать isValue()
. То, что это не будет искать, hasValue()
.
Это получило меня взгляды, что точно это делает?
Учебная глава Java EE 5 - Объединенный Язык Выражения относится к PageContext.FindAttribute()
. PageContext
отправляет Вас в JSPContext
. Ни один из них на самом деле не объясняет правила, за которыми они следуют для определения названия метода, который они ищут.
Также довольно легко найти документацию, в которой говорится, что имена методов должны начаться, добираются. Однако я знаю это isValue()
работы.
Может любой указывать на меня на документацию, где это записано. Я не ищу учебные руководства или примеры, я ищу ссылку.
Это официально задокументировано как в JavaBeans Spec , так и в EL Specification.
Чтобы взять в качестве примера логическое свойство
, оно описано в главе 8.3.2 спецификации JavaBeans:
8.3.2 Логические свойства
Кроме того, для логических свойств мы разрешаем метод getter для соответствия шаблону:
public boolean is
;() Этот метод is < PropertyName > может быть предоставлен вместо метода get < PropertyName > ”метод, или он может быть предоставлен в дополнение к методу «get < PropertyName >».
В любом случае, если для логического свойства присутствует метод «is < PropertyName >», то мы будем используйте метод is < PropertyName > для чтения значения свойства.
Примером логического свойства может быть:
public boolean isMarsupial (); public void setMarsupial (логическое значение m);
Итак, # {bean.marsupial}
ожидает в точности указанную выше пару геттер / сеттер.
И в главе 1.18.5 спецификации EL:
1.18.5 Приведение A к логическому
- Если
A
равноnull
или""
], вернутьfalse
- В противном случае, если
A
являетсялогическим
, вернутьA
- В противном случае, если
A
являетсяСтрока
иBoolean.valueOf (A)
не создает исключение, вернуть его
По сути, все, что вы сказали, - это все, что вам нужно. EL ожидает, что объект будет соответствовать стандартным стандартам java bean-компонентов. Эти 2 должны помочь: