Когда кнопка «Загрузить», ActionListener не работает в случае использования ajax = «false», но при отсутствии использования ajax = «false», actionListener работает, но не загружается файл.Загрузка файла. Прайвемы не работают и не предпринимают никаких действий.
<html xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:tsc="http://java.sun.com/jsf/composite">
<h:form>
<p:commandButton immediate="true" value="#{msgs.common_click_download}"
icon="ui-icon-arrowthick-1-s" process="@this"
rendered="#{manehHelperMB.isFileExist('/home/hazemelshenawy/111.txt')}">
<p:fileDownload process="@this" contentDisposition="inline"
value="#{fileDownloaderMB.downloadFile('/home/hazemelshenawy/111.txt')}" />
</p:commandButton>
</h:form>
</html>
этот код Java
public class FileDownloaderBean implements Serializable {
private DefaultStreamedContent file;
public DefaultStreamedContent downloadFile(String filePath) {
if (filePath == null || filePath.isEmpty())
return new DefaultStreamedContent();
try {
File fi = new File("/home/hazemelshenawy/111.txt");
InputStream input = new FileInputStream(fi);
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
try {
file = new DefaultStreamedContent(input,
externalContext.getMimeType(URLEncoder.encode(fi.getName(), "UTF-8")), fi.getName());
} catch (UnsupportedEncodingException e) {
CommonUtils.log(e);
}
} catch (FileNotFoundException e) {
CommonUtils.log(e);
}
return file;
}
}
Какой контейнер вы используете? Кот? У вас нет ошибок в журналах сервера? Tomcat по умолчанию не поддерживает передачу аргументов в el-выражениях, если вы не убедитесь, что вы правильно установили «el-impl-2.2.jar» или позже. – STaefi
Tomcat 8, да, у меня нет ошибок в журналах сервера –