генерировать действие outputLink из базы данных

У меня есть много меню outputLink, и я сгенерировал их из базы данных mysql, например:

<ui:repeat value="#{loginAction.subMenusBeans.subMenusBeansList}" 
var="subMenusBeansList">
<ui:fragment rendered="#{menusBeansList.menuId == subMenusBeansList.menuId}" >   

<h:commandLink id="circlLink" value="#{subMenusBeansList.subMenuName}"  
action="{subMenusBeansList.subMenuLink}" />
</ui:fragment>
</ui:repeat>

Я получаю значение действия из базы данных и устанавливаю его в «subMenusBeansList.subMenuLink».

вывод:

head quarter
main offices
offices
and so on..

когда я нажимаю на любую из приведенных выше ссылок

исключение: action="#{subMenusBeansList.subMenuLink}": Метод не найден:

Я хочу установить имя метода действия из базы данных, потому что у меня много гиперссылок, и я хочу установить все действия ссылок из базы данных и сгенерировать их в xhtml с помощью ui: repeat, но когда я нажимаю на любое действие гиперссылки, сгенерированное из исключения #{subMenusBeansList.subMenuLink}' throw

 javax.servlet.ServletException: javax.el.MethodNotFoundException: /template/
    templateslider.xhtml @36,135 action="#{subMenusBeansList.subMenuLink}":
 Method not found: [email protected]()

person mo sean    schedule 21.03.2013    source источник
comment
Итак, #{subMenusBeansList.subMenuLink} должен быть геттером, который возвращает результат навигации? Почему бы вам просто не использовать <h:link> вместо <h:commandLink>?   -  person BalusC    schedule 22.03.2013


Ответы (1)


Проблема, с которой вы столкнулись здесь, заключается в том, что <h:outputLink action="XXXX"> фактически ожидает MethodExpression, поэтому он не пытается разрешить геттер для вашего свойства «subMenuLink».

Что вы, вероятно, хотите, так это, как предложил BalusC, использовать вместо этого `. Этот атрибут ожидает ValueExpression и должен иметь возможность разрешать ваше свойство и его геттер.

person Lincoln    schedule 22.03.2013