CSVファイルのダウンロード方法がわかりません。CSVは実行時に生成されます。最初にファイルをtomcatWEB-INFディレクトリに保存する必要がありますか?JSF1.2を使用しています。
ちなみに、この種のタスクで好まれるJSFコンポーネントは何ですか?
編集(05.05.2012-15:53)
BalusC
彼の最初のリンクに記載されている解決策を試しましたが、コマンドボタンをクリックすると、ファイルの内容がWebページに表示されます。たぶん?に問題がありmimetype
ますか?
xhtmlファイル:
<a4j:form>
<a4j:commandButton action="#{surveyEvaluationBean.doDataExport}" value="#{msg.srvExportButton}" />
</a4j:form>
メインビーン:
public String doDataExport() {
try {
export.downloadFile();
} catch (SurveyException e) {
hasErrors = true;
}
return "";
}
export-bean:
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<String> strings = new ArrayList<String>();
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");
}
}
編集(2012年5月5日-16:27)
私は自分の問題を解決しました。<h:commandButton>
代わりに使用する必要が<a4j:commandButton>
あり、今では機能します!