Загрузка файла CSV с помощью JSF

Я не знаю, как скачать CSV-файл. CSV будет создан во время выполнения. Нужно ли сначала сохранить файл в каталоге tomcat WEB -INF? Я использую JSF 1.2.

Кстати, какой компонент JSF предпочтительнее для такого рода задач?


Редактировать (05.05.2012 -15 :53)

Я попробовал решение BalusC, указанное в его первой ссылке , но если я нажму на свою команду CommandButton, содержимое файл отображается на веб-странице. Может проблема с mimetype?

xhtml -файл:


    

основной компонент:

    public String doDataExport() {

    try {
        export.downloadFile();  
    } catch (SurveyException e) {
        hasErrors = true;
    }
    return "";
}

экспорт -компонент:

public void downloadFile() throws SurveyException {

    try {

        String filename = "analysis.csv";

        FacesContext fc = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();

        response.reset();
        response.setContentType("text/comma-separated-values");
        response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");

        OutputStream output = response.getOutputStream();

        // writing just sample data
        List strings = new ArrayList();

        strings.add("filename" + ";" + "description" + "\n");
        strings.add(filename + ";" + "this is just a test" + "\n");

        for (String s : strings) {
            output.write(s.getBytes());
        }

        output.flush();
        output.close();

        fc.responseComplete();

    } catch (IOException e) {
        throw new SurveyException("an error occurred");
    }
}

Изменить (05.05.2012 -16 :27)

Я решил свою проблему. Я должен использовать вместо , и теперь это работает!

5
задан Community 23 May 2017 в 11:53
поделиться