コンテンツを含む作成中のMSWord2003ドキュメントをダウンロードしたいmyString
。私は次のコードを使用しました:
BufferedReader reader = new BufferedReader(new FileReader(templatePathFilename));
HttpServletResponse response = new MyHttpServletResponse();
response.setContentType ("application/msword");
response.setHeader ("Content-Disposition", "attachment; filename=\""+outgoingFileName);
ServletOutputStream myOut = response.getOutputStream();
myOut.write(myString.getBytes());
myOut.flush();
myOut.close();
ただし、この行myOut.write(myString.getBytes())
ではNullPointerExceptionが発生します。
MyHttpServletResponse
生成されたエラーをすばやく修正したときに、eclipseがデフォルトで生成したクラスです。そのクラスを変更する必要がありますか?誰でも助けてくれませんか!
編集:私が取り組んでいる実際のコードは次のとおりです:
BufferedReader reader = new BufferedReader(new FileReader(templatePathFilename));
String outgoingFileName = outputPathFilename;
response.setContentType("application/msword");
response.setHeader("Content-Disposition", "attachment; filename="+outgoingFileName);
OutputStream myOut = response.getOutputStream();
try {
String thisLine;
while ((thisLine = reader.readLine()) != null) {
if(thisLine.contains("##"))
{
for (java.util.Enumeration e = FrontSheetMap.keys(); e.hasMoreElements();{
String name = (String) e.nextElement();
String value = FrontSheetMap.get(name).toString();
thisLine= thisLine.replaceAll("##" + name.toUpperCase() + "##", value);
}
}
myOut.write(thisLine);
myOut.write("\n");
}
myOut.flush();
}catch(Exception e){}
whileループは、入力ファイルのプレースホルダーを必要な値に置き換え、の新しいコンテンツがthisLine
出力ファイルに書き込まれます。このコードを実行するリンクをクリックするとポップアップするダウンロードオプションが必要です。