在p:fileUpload侦听器方法中获取当前迭代的数据表行

时间:2015-01-07 10:46:14

标签: jsf file-upload primefaces datatable

我在<p:fileUpload>中使用<p:dataTable>。上传工作正常,但我想知道侦听器方法中当前迭代的行,以便我可以更新数据库中的右行。

XHTML:

<p:fileUpload fileUploadListener="#{doorBean.handleFileUpload}"
    mode="advanced" dragDropSupport="false" update="messages"
    sizeLimit="3000000"
    allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />

豆:

public void handleFileUpload(FileUploadEvent event) {
    this.file = event.getFile();
    ...
}

我怎样才能做到这一点?我可以将其他参数传递给bean吗?

1 个答案:

答案 0 :(得分:5)

给出

<p:dataTable value="#{bean.items}" var="item" ...>

在侦听器方法中从EL中获取当前迭代的行:

FacesContext context = FacesContext.getCurrentInstance();
Item item = context.getApplication().evaluateExpressionGet(context, "#{item}", Item.class);

或只是将侦听器方法从Bean移动到Item

 <p:fileUpload fileUploadListener="#{item.handleFileUpload}" ... />