我有一个可供您下载文件的日期。它有效。但是,当我尝试下载过滤后返回的文件时,它是列表中的第一个。
这是我的文件,其中包含可数据:
<h:form id="hFormListaArquivosRegiao2" enctype="multipart/form-data">
<p:dataTable id="pDataTableListaArquivos" var="arquivo" value="#{arquivoBean.listaArquivos}" filteredValue="#{arquivoBean.filteredListaArquivos}">
<p:column id="pColumnNomeArquivo" headerText="#{msg.NomeDoArquivo}" sortBy="#{arquivo.nomeArquivo}" filterMatchMode="contains" filterBy="#{arquivo.nomeArquivo}">
<h:commandLink action="#{arquivoBean.download}" title="#{arquivo.nomeArquivo}">
<h:outputText value="#{arquivo.nomeArquivo}" />
<f:setPropertyActionListener target="#{arquivoBean.arquivo}" value="#{arquivo}" />
</h:commandLink>
</p:column>
</h:form>
<代码>
这是支持Bean负责下载的方法:
public void download() throws Exception {
logger.debug("NOME ARQUIVO: "+ ContextoBean.CAMINHO_ARQUIVOS + arquivo.getNomeArquivo() +", "+ arquivo.getNomeArquivo());
FacesContext facesContext = FacesContext.getCurrentInstance();
pushArquivo(facesContext.getExternalContext(), ContextoBean.CAMINHO_ARQUIVOS + arquivo.getNomeArquivo(), arquivo.getNomeArquivo());
facesContext.responseComplete();
}
<代码>
这是backingBean负责下载的helper方法:< code>
private void pushArquivo(ExternalContext externalContext, String nomeArquivo, String nomeDeExibicao) throws IOException {
// Info sobre a lógica usada: http://stackoverflow.com/questions/1686821/execute-backing-bean-action-on-load
File descritoArquivo = new File(nomeArquivo);
int length = 0;
OutputStream os = externalContext.getResponseOutputStream();
String extencaoArquivo = externalContext.getMimeType(nomeArquivo);
externalContext.setResponseContentType((extencaoArquivo != null) ? extencaoArquivo : "application/octet-stream");
externalContext.setResponseContentLength((int) descritoArquivo.length());
externalContext.setResponseHeader("Content-Disposition", "attachment; filename=\"" + nomeDeExibicao + "\"");
// Stream to the requester.
byte[] bbuf = new byte[1024];
DataInputStream in = new DataInputStream(new FileInputStream(descritoArquivo));
while ((in != null) && ((length = in.read(bbuf)) != -1)) {
os.write(bbuf, 0, length);
}
in.close();
}
<代码>
如果我是你,我会做一些更改,通过方法参数获得当前的arquivo:
<h:commandLink action="#{arquivoBean.download(arquivo)}">
<h:outputText value="#{arquivo.nomeArquivo}" />
</h:commandLink>
在bean中:
public void download(Arquivo arquivo) throws Exception {
FacesContext facesContext = FacesContext.getCurrentInstance();
pushArquivo(facesContext.getExternalContext(),
ContextoBean.CAMINHO_ARQUIVOS + arquivo.getNomeArquivo(),
arquivo.getNomeArquivo());
facesContext.responseComplete();
}
我正在尝试在datatable(primefaces 3.5)中进行筛选。仅当用户单击commandLink时才应触发筛选器。 我的桌子: 我有3个问题与此代码: 1-过滤器不工作。如果我点击命令链接,页面会重新加载,但没有任何内容被过滤。可能是因为#form\: filteredTable\:statusColumn_filter'). val()返回未定义。所以我想我没有设置过滤器的值(对吗?
在我的应用程序中,我使用全局过滤器搜索Primefaces数据表中的记录,并在同一数据表上应用了DataExporter。 当我搜索任何记录并进行导出时,它会返回给我一个完整的数据列表,而不是过滤列表。 我的开发环境是:java 6.0、Primefaces 3.2、JSF2.1、GlassFish Server 3.1.2、Netbeans 7.1.1 登记在我的dataTable和dataEx
我想使用数据砖自动加载器设置S3流。我已经设法设置了流,但我的S3存储桶包含不同类型的JSON文件。我想过滤掉它们,最好是在流本身中,而不是使用操作。 根据文档,我应该能够使用全局模式进行过滤。但是,我似乎无法让它工作,因为它无论如何都会加载所有内容。 这是我有的 我的文件有一个结构为
我有两个类:停车场和汽车。公园有一个ID和一个汽车列表。我想在数据表中显示带有标签的停车场和汽车列表。问题是我无法在数据表中找到汽车的车牌号。当我尝试在Netbean中自动完成时,它会显示可能的公园字段(公园ID和汽车列表)。为什么?有什么想法如何修复它吗?
本文向大家介绍如何通过表单下载文件?相关面试题,主要包含被问及如何通过表单下载文件?时的应答技巧和注意事项,需要的朋友参考一下 form 表单的action设置为接口地址,设置method为post/get : 根据需要传递的参数设置多个: 如果请求的接口不需要参数,建议设置一个input,否则可能会引起报错。 submit提交到后台
我有一个基于selectOneMenu的过滤器的树状表,就像primeface展示展示。 我试图用selectCheckBoxMenu替换selectOneMenu,以过滤多个选中值。 我可以选择CheckBoxMenu与所有必要的项目,我得到选定的项目在我的豆,但我不知道如何过滤? 我必须在服务器端重建我的TreeNode并删除所有不需要的节点吗?