2016-03-08 67 views
0

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

问候
任何建议理解
Cumhur阿塔


UPDATE:

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

Screenshot of confirmation

更新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> 
+0

你没有告诉我们,*你到目前为止已经试过了什么。试着更具体一些:你到目前为止得到的结果是什么,为什么他们不符合你的说法? –

+0

我试过这种样本 https://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesStream_sample_JavaScript_code_for_XPages –

+0

再次说明:您从示例代码中得到了什么样的结果,错误消息?错误的文本文件?你尝试过哪一个样本,你不喜欢它的结果是什么? –

回答

4

本示例将下载字符串的内容作为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(); 
+0

你知道吗?就像Enter键一样,如何去下一行。 –

+0

您可以将“\ n”添加到字符串以开始新行。 –

+0

我试过了,它不适用于我:( 我添加了我的按钮代码到我的问题。我想我错过了一些东西:( –

0

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

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

希望我帮忙。最好的祝福。