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

mba*_*uer 1 datatable jsf file-upload primefaces

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

XHTML:

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

豆:

public void handleFileUpload(FileUploadEvent event) {
    this.file = event.getFile();
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 5

给出一个

<p:dataTable value="#{bean.items}" var="item" ...>
Run Code Online (Sandbox Code Playgroud)

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

FacesContext context = FacesContext.getCurrentInstance();
Item item = context.getApplication().evaluateExpressionGet(context, "#{item}", Item.class);
Run Code Online (Sandbox Code Playgroud)

或者只是将侦听器方法从以下方式移动BeanItem:

 <p:fileUpload fileUploadListener="#{item.handleFileUpload}" ... />
Run Code Online (Sandbox Code Playgroud)