У меня есть пользовательский компонент Facelet (пользовательский тег), но есть одна вещь, которая меня сейчас сильно раздражает. Я пытаюсь передать слушатель действия в качестве параметра пользовательскому тегу, чтобы сделать его более динамичным и просто не работает.
Среда: JSF 1.2, IceFaces 1.8
Вот способ, которым я пытаюсь достичь этого:
командная ссылка использует переданный параметр 'paginationController'
<h:commandLink id="#{id}-link-three" value="click"
actionListener="#{paginationController.paginationLinkClicked}" />
параметр 'paginationController' передается следующим образом:
paginationController="rowSelectController"
когда я нажимаю на ссылку, я получаю следующее:
Received 'javax.el.MethodNotFoundException' when invoking action listener
'#{paginationController.paginationLinkClicked}' for component 'entity-list-apps-link-three'
2011-02-22 12:49:47,803 SEVERE [javax.faces.event] (http-127.0.0.1-8080-4)
javax.el.MethodNotFoundException: /WEB-INF/jsf/common/components/facelets
/applicationList.xhtml @107,71 actionListener="#{paginationController.paginationLinkClicked}":
Method not found: rowSelectController.paginationLinkClicked(javax.faces.event.ActionEvent)
Похоже, что он успешно разрешает имя компонента в rowSelectController, но жалуется, что не может найти метод, и метод существует!
Еще одна вещь, если я заменю параметр на правильное имя контроллера, он просто работает! Есть идеи?