【问题标题】:XPages to create .txt File via SSJSXPages 通过 SSJS 创建 .txt 文件
【发布时间】:2016-06-22 11:40:19
【问题描述】:

我需要用 SSJS 创建一个文本文件。我从文档中获取数据,然后将所有数据写入文本文件。我尝试了一些我在互联网上搜索的解决方案,但我无法得到我需要的结果。

问候
任何建议表示赞赏
库姆胡尔阿塔


更新:

writer.endDocument();
facesContext.responseComplete();
writer.close();

更新 2:

<xp:button value="Create TXT File" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:var con = facesContext.getExternalContext();
var response:com.ibm.xsp.webapp.XspHttpServletResponse = con.getResponse();
response.setContentType("text/plain; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", -1);
response.setHeader("Content-Disposition", "attachment; filename=\"file.txt\"" );
var strEntr = "\n";
var str1 = "TXTV2[] \n";
str1 +=  "NUMBER|CLIENT_ID|START_DATE|END_DATE|\n";
str1 += "UNITS|DESCRIPTION|CLASSIFICATION|"+strEntr;
str1 += "[]";
response.getOutputStream().write(str1.getBytes());
facesContext.responseComplete();   }]]></xp:this.action>
    </xp:eventHandler></xp:button>

【问题讨论】:

  • 你没有告诉我们,什么你到目前为止尝试过。尝试更具体一点:到目前为止,您获得了哪些结果,为什么它们不符合您的预期?
  • 再次:您从该示例代码中得到了什么样的结果,错误消息?错误的文本文件?您尝试了 wiki 中的哪一个示例,您不喜欢它的哪些结果?
  • 我使用了 Lars 发送的代码。但唯一的问题是当我尝试使用此代码运行时它要求保存文件。我需要在没有确认的情况下将文件保存到我的硬盘中。我添加了我尝试自动保存的内容

标签: export xpages xpages-ssjs


【解决方案1】:

您应该在 SSJS 中初始化 Java 代码。

importPackage(Java class) // whole Java class name with package !!!not string
var tmp = new ImportedClassName()
tmp.run() // run all logic

希望我能帮上忙。最好的问候。

【讨论】:

    【解决方案2】:

    本示例将把字符串的内容下载为 txt 文件。

    希望对您有所帮助。

    var textBuffer = "some text here";
    var con = facesContext.getExternalContext();
    var response:com.ibm.xsp.webapp.XspHttpServletResponse = con.getResponse();
    response.setContentType("text/plain");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", -1);
    response.setHeader("Content-Disposition", "attachment; filename=\"file.txt\"" );
    response.getOutputStream().write(textBuffer.getBytes());
    facesContext.responseComplete();
    

    【讨论】:

    • 你知道如何像 Enter 键一样进入下一行。
    • 您可以在字符串中添加“\n”来开始一个新行。
    • 我试过了,但它对我不起作用:(我在我的问题中添加了带有代码的按钮。我想我错过了一些东西:(
    • 也许 \r 有帮助。看看这里:stackoverflow.com/questions/9260126/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多