由f:setPropertyActionListener引起的JSF标记异常:父类型不是ActionSource类型

时间:2010-06-24 08:51:27

标签: java jsf facelets icefaces

我有一个用普通的旧JSF编写的Web应用程序,我想部分迁移到ICEfaces以使用它的一些组件,即现在的确认面板。为了使用它,我使用需要确认冰的链接更改了我的表单:来自h:的标签库。我使用的链接应该是带有参数的fire方法。该参数通过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 个答案:

答案 0 :(得分:1)

冰面HtmlCommandLink扩展了原始冰面,因此问题不在组件中。

我假设您输入错误并且icefaces组件未解析。

答案 1 :(得分:0)

我已经解决了这个问题。之所以出现这种情况,是因为在ICEfaces 2.0中使用ice:标签,因为ICEfaces 2.0组件仍在开发中,所以要包含兼容性库以用ICEfaces 1.8.2替换组件。