我想用我的struts应用程序下载xml文件。 我在JAVA中使用我的xml(在我的行动中)。当我点击链接时,下载窗口不会打开。 这是我的代码: 行动:
@Action(value = "download", results = {
@Result(name = "success", type = "redirectAction", params = {
"actionName", "testMM"}),
@Result(name = "input", location = "testMM.jsp") })
public String dowload() {
setFilePath(getSession().get("filePath", String.class));
setFileName(getSession().get("fileName", String.class));
try {
fileInputStream = new FileInputStream("c://mm.xml");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
/**
* @return the fileInputStream
*/
public InputStream getFileInputStream() {
return fileInputStream;
}
我的JSP:
<s:url id="fileDownload" namespace="/adminMM" action="download" ></s:url>
<s:a style="width: 300px; maring: 15px 25px;" href="%{fileDownload}"><s:text name="%{resultFileName}" /></s:a>
我需要帮助。我可以给你更多的信息。
答案 0 :(得分:0)
使用Struts2下载文件时,需要使用Stream result type:
@Action(value = "download",
results = {
@Result(name = "success", type = "stream", params = {
"contentType" , "text/xml",
"inputName" , "fileInputStream",
"contentDisposition" , "attachment;filename=\"foobar.xml\""
}),
@Result(name = "input", location = "testMM.jsp")
}
)
如果找不到文件,则返回ERROR,您只是打印堆栈跟踪并返回SUCCESS;
更正必须为dowload
的{{1}}方法中的拼写错误。