Как получить доступ к getFirst () и getLast () со страницы JSF? - PullRequest
1 голос
/ 26 августа 2011

У меня есть Java-объект, определенный как List >>.Однако, когда я печатаю данные в таблице и выполняю следующие действия, это работает:

<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount][0]"/>

Однако, если выполняется одно из следующих действий, происходит сбой:

<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].first}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].getFirst()}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].getFirst}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].First}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount]['first']}"/>

Я хотел бы получить доступ к методам LinkedList getFirst () и getLast ().Как я могу это сделать?

Большое спасибо за вашу поддержку!; -)

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

Это невозможно в стандартном EL.Всякий раз, когда объект является экземпляром List, он получает специальную обработку ListELResolver.Вы можете получить доступ к элементу только по целочисленному индексу.У EL нет специализированной поддержки LinkedList.Для этого вам нужно написать пользовательский ELResolver, но проще просто обернуть LinkedList в Javabean и передать ему вызовы.

0 голосов
/ 27 августа 2011

В качестве альтернативы тому, что говорит BalusC (что является хорошим советом), вы также можете создать свою собственную функцию EL.

Это на самом деле довольно просто и обеспечивает большее повторное использование, если вам нужна такая функциональность на болеестраниц.

С пользовательской функцией EL вы можете, например, сказать:

#{funct:first(column[rowcount])}
0 голосов
/ 26 августа 2011

Я предлагаю вам написать метод для вашего класса контроллера (дома) для получения внутренних списков по индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...