FreeMarker,WebWork 问题
Posted
技术标签:
【中文标题】FreeMarker,WebWork 问题【英文标题】:FreeMarker, WebWork Problem 【发布时间】:2010-12-16 05:49:50 【问题描述】:我有一个使用 freemarker、webwork 和 java 编写的 web 应用程序。现在,当用户单击“getReport”时,java 代码返回字符串变量(名为“otchet”),其中包含纯文本的整个报告,并显示以下页面:
simple.ftl:
<#if (otchet?exists)>
$otchet
<#else>
<@ww.text name="report.none"/>
</#if>
一切正常。但是,我想以文本/纯文件下载的形式向用户提供此报告(包含在变量“otchet”中)。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:这正是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;
【讨论】:
以上是关于FreeMarker,WebWork 问题的主要内容,如果未能解决你的问题,请参考以下文章
大数据学习总结记录—页面静态化技术(Freemarker/velocity)& 网站伪静态(UrlRewriteFilter)