org.primefaces.component.column.column无法转换为javax.faces.component.ActionSource
小结:我一直在开发一个带有文档列表的有点复杂的JSF表单,现在想在该列表的每一行中添加一个按钮,这将允许您下载文档文件。Primefaces为此提供了一个吸引人的解决方案,因此我正在逐步将整个页面转换为使用Primefaces,但现在我刚刚转换了文档表-这很有效,尽管看起来很奇怪。我的问题是,当我添加org.primefaces.component.column.column无法转换为javax.faces.component.ActionSource,primefaces,jsf-2,Primefaces,Jsf 2,小结:我一直在开发一个带有文档列表的有点复杂的JSF表单,现在想在该列表的每一行中添加一个按钮,这将允许您下载文档文件。Primefaces为此提供了一个吸引人的解决方案,因此我正在逐步将整个页面转换为使用Primefaces,但现在我刚刚转换了文档表-这很有效,尽管看起来很奇怪。我的问题是,当我添加p:commandButton时,我遇到了一个例外,我甚至不知道它的意思-据我所知,我遵循我能够找到的示例,包括primefaces的展示: org.primefaces.component.col
p:commandButton
时,我遇到了一个例外,我甚至不知道它的意思-据我所知,我遵循我能够找到的示例,包括primefaces的展示:
org.primefaces.component.column.Column cannot be cast to javax.faces.component.ActionSource
以下是表格的详细信息
<h:form id="doclistform">
<p:dataTable value="#{documentsController.documentList}" var="doclst"
id="doclist">
<!-- innocent columns -->
<p:column>
<f:facet name="header">
<h:outputText value="Download"/>
</f:facet>
<p:fileDownload value="#{doclst.docfile}"/>
</p:column>
</p:dataTable>
</h:form>
如果查看,您会注意到
嵌入在
标记中:文件下载需要一个操作源(如上面提到的错误)来触发下载
只需用p:commandButton
包装您的p:fileDownload
<p:column>
<f:facet name="header">
<h:outputText value="Download"/>
</f:facet>
<p:commandButton value="Download" ajax="false">
<p:fileDownload value="#{doclst.docfile}"/>
</p:commandButton>
</p:column>
下次,请创建一个。。。在您的应用程序中找到许多不相关的代码post@Kukeltje谢谢你的链接,我已经提交了这个问题的编辑,应该已经添加了你的链接。我会记住的-谢谢你的回复,也谢谢你没有指出我必须是@*&$$!瞎子,我自己也看不见:-)
<p:column>
<f:facet name="header">
<h:outputText value="Download"/>
</f:facet>
<p:commandButton value="Download" ajax="false">
<p:fileDownload value="#{doclst.docfile}"/>
</p:commandButton>
</p:column>
<p:column headerText="Download">
<p:commandButton value="Download" ajax="false">
<p:fileDownload value="#{doclst.docfile}"/>
</p:commandButton>
</p:column>