Как язык выражения Java разрешает булевы атрибуты? (в JSF 1.2)

Таким образом, все мы знаем это #{someBean.value} попытается надеть содержание некоторого свойства someBean названный value. Это будет искать getValue(). Однако, что, если это свойство boolean? Это будет искать isValue(). То, что это не будет искать, hasValue().

Это получило меня взгляды, что точно это делает?

Учебная глава Java EE 5 - Объединенный Язык Выражения относится к PageContext.FindAttribute(). PageContext отправляет Вас в JSPContext. Ни один из них на самом деле не объясняет правила, за которыми они следуют для определения названия метода, который они ищут.

Также довольно легко найти документацию, в которой говорится, что имена методов должны начаться, добираются. Однако я знаю это isValue() работы.

Может любой указывать на меня на документацию, где это записано. Я не ищу учебные руководства или примеры, я ищу ссылку.

13
задан Tiny 1 October 2015 в 14:37
поделиться

2 ответа

Это официально задокументировано как в 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) не создает исключение, вернуть его

См. также:

17
ответ дан 1 December 2019 в 22:22
поделиться

По сути, все, что вы сказали, - это все, что вам нужно. EL ожидает, что объект будет соответствовать стандартным стандартам java bean-компонентов. Эти 2 должны помочь:

5
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: