0

我已经多次使用 Primefaces。太棒了。但这一次我不知道为什么:

我无法添加咆哮组件,错误是:org.primefaces.component.growl.Growl 无法强制转换为 org.primefaces.component.api.AutoUpdatable

p:messages 也一样

这可能是由于我的facelet中的一些错误。但我将此与我之前写的一个成功的 facelet 进行比较,我无法弄清楚问题出在哪里。facelet 的问题是(删除 p:growl 并且一切顺利):

<body>

    <ui:composition template="./../../WEB-INF/master.xhtml">

        <ui:define name="top">
            <h:outputText value="#{bundle.ListAccountHolderTitle}"></h:outputText>
        </ui:define>

        <ui:define name="content">
            <h:form>
                <p:growl id="growl"/>
                <p:dataTable value="#{accountHolderBean.items}" var="holder">
                    <p:column headerText="Type">#{holder.name}</p:column>
                </p:dataTable>
                <h:panelGrid columns="2">
                    Type
                    <h:inputText id="type1" required="true" value="#{accountHolderBean.selected.type}"/>
                    Name
                    <h:inputText id="name1" value="#{accountHolderBean.selected.name}"/>
                    Field
                    <h:inputText id="field1" accesskey="f" value="#{accountHolderBean.field}"/>
                    Value
                    <h:inputText id="val" accesskey="v" value="#{accountHolderBean.val}"/>
                    All attributes
                    <h:outputText id="attrs" value="#{accountHolderBean.allAttributes}"/>
                </h:panelGrid>
                <p:commandLink update="attrs" actionListener="#{accountHolderBean.update}">Update</p:commandLink>
            </h:form>
        </ui:define>

    </ui:composition>

</body>

4

1 回答 1

2
org.primefaces.component.growl.Growl cannot be cast to org.primefaces.component.api.AutoUpdatable

这表明您在 web 应用的运行时类路径中同时拥有 PrimeFaces 2.x 和 3.x 库。AutoUpdatable是在 PrimeFaces 3.0 中引入的,而之前在 2.x 中已经Growl存在,但AutoUpdatable直到 PrimeFaces 3.0 才实现。

清理您的类路径并摆脱令人讨厌的旧 PrimeFaces 2.x 库。

于 2012-06-16T05:11:04.063 回答