Исключение тега JSF, вызванное f: setPropertyActionListener: Родитель не относится к типу ActionSource - PullRequest
0 голосов
/ 24 июня 2010

У меня есть веб-приложение, написанное на простом старом JSF, которое я хочу частично перенести на ICEfaces, чтобы использовать некоторые его компоненты, а именно панель подтверждения. Чтобы использовать его, я изменил свои формы со ссылками, требующими подтверждения, в библиотеку ice: tag из h :. Ссылки, которые я использую, должны запускать метод, который принимает параметр. Параметр отправляется через f: setPropertyActionListener. Однако теперь я получаю следующее исключение:

javax.faces.view.facelets.TagException: 
/jsp/manageDomainTypes.xhtml @30,99 <f:setPropertyActionListener> 
Parent is not of type ActionSource, type is: 
javax.faces.component.UIOutput@14ea0724

Если я переключаюсь обратно на h taglib, исключение исчезает, и все работает нормально. Где я не прав и что я могу сделать, чтобы правильно использовать мои командные ссылки в ICEfaces? Я использую Tomcat 6.0.26 с JSF 2.0 и ICEfaces 2.0.0 alpha3 на борту.

Один из примеров такой ссылки:

<ice:commandLink action="#{DomainTypeBean.openEditDomainType}">
    <ice:graphicImage value="#{icon.edit}"/>
    <f:setPropertyActionListener 
        target="#{DomainTypeBean.currentType}" value="#{domainType}" />
</ice:commandLink>

Ссылки вложены в

<ui:define><ice:form><ice:panelGrid><ice:dataTable>.

Ответы [ 2 ]

1 голос
/ 24 июня 2010

Icefaces HtmlCommandLink расширяет исходную, поэтому проблема не в компоненте.

Я предполагаю, что вы неправильно импортировали, и компонент icefaces не разрешен.

0 голосов
/ 24 июня 2010

Я исправил проблему. Это произошло потому, что для использования ice: тегов в ICEfaces 2.0 необходимо включить библиотеки совместимости для замены компонентов на ICEfaces 1.8.2, поскольку компоненты ICEfaces 2.0 все еще находятся в стадии разработки.

...