首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeMarker,WebWork问题

FreeMarker,WebWork问题
EN

Stack Overflow用户
提问于 2009-11-13 17:57:53
回答 1查看 441关注 0票数 1

我有一个使用freemarker,webwork和java编写的web应用程序。现在,当用户单击"getReport“时,java代码将返回字符串变量(名为"otchet"),该变量包含纯文本格式的整个报表,并显示以下页面:

simple.ftl:

代码语言:javascript
复制
<#if (otchet?exists)>
     ${otchet}   
<#else>
    <@ww.text name="report.none"/>
</#if>

它工作正常。但是,我想以文本/纯文本文件形式向用户提供此报告(包含在变量“otchet”中)。

我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2009-12-27 05:15:21

这正是StreamResult结果类型的用途。

示例:

在您的WebWork XML中:

代码语言:javascript
复制
<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>

在您的操作中:

代码语言:javascript
复制
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;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1728271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档