在 p:fileUpload 侦听器方法中获取当前迭代的数据 table 行
Getting currently iterated data table row in p:fileUpload listener method
我在 <p:dataTable>
中使用 <p:fileUpload>
。上传工作正常,但我想知道侦听器方法中当前迭代的行,以便我可以更新数据库中的正确行。
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 传递一个额外的参数吗?
给定一个
<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}" ... />
我在 <p:dataTable>
中使用 <p:fileUpload>
。上传工作正常,但我想知道侦听器方法中当前迭代的行,以便我可以更新数据库中的正确行。
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 传递一个额外的参数吗?
给定一个
<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}" ... />