我使用以下代码删除使用primefaces上传的文件。
<p:column width="35" headerText="Delete" style="text-align:center">
<h:commandLink ajax="true" update="@form" title="Delete Document"
process="@form" action="#{learningGuaranteeBean.deleteDocument()}"
disabled="#{(learningGuaranteeBean.activeEntry.statusCode ne 3) and (learningGuaranteeBean.activeEntry.statusCode ne null)}">
<f:setPropertyActionListener
target="#{learningGuaranteeBean.selectedDocument}"
value="#{doc}"></f:setPropertyActionListener>
<h:graphicImage value="../images/icons/delete.gif"></h:graphicImage>
</h:commandLink>
</p:column>
但是当我删除附件时,会重新加载整个jsf页面,因此当我删除附件时,输入字段中输入的数据会消失。有人可以帮我防止这个吗?
答案 0 :(得分:0)
您似乎错误地使用h:commandLink
而不是p:commandLink
。由于h:commandLink
甚至没有process
,update
,ajax
属性,因此会导致非AJAX提交,因此会重新加载页面。
使用p:commandLink
。
如果由于某种原因需要h:commandLink
,请将错误的属性替换为正确的f:ajax
标记。