我有一个使用freemarker,webwork和java编写的web应用程序。现在,当用户单击"getReport“时,java代码将返回字符串变量(名为"otchet"),该变量包含纯文本格式的整个报表,并显示以下页面:
simple.ftl:
<#if (otchet?exists)>
${otchet}
<#else>
<@ww.text name="report.none"/>
</#if>它工作正常。但是,我想以文本/纯文本文件形式向用户提供此报告(包含在变量“otchet”中)。
我该如何解决这个问题?
发布于 2009-12-27 05:15:21
这正是StreamResult结果类型的用途。
示例:
在您的WebWork XML中:
<result name="download" type="stream">
<param name="contentDisposition">filename=report.txt</param>
<param name="contentType">text/plain;charset=UTF-8</param>
<param name="inputName">inputStream</param>
<param name="bufferSize">1024</param>
</result>在您的操作中:
public InputStream getInputStream() {
try {
return new ByteArrayInputStream(getOtchet().getBytes("UTF-8"));
}
catch (UnsupportedEncodingException ex) {
// Shouldn't happen with UTF-8.
ex.printStackTrace();
}
}
public String doDownload() {
if (SUCCESS.equals(execute()) {
return "download";
}
else {
return ERROR;
}
}https://stackoverflow.com/questions/1728271
复制相似问题