Aber ich bekomme einige neue Anforderungen von meinem Kunden. Wenn der Benutzer die Formularschaltfläche gedrückt hat, muss ein animiertes GIF-Bild angezeigt werden, während der serverseitige Java-Code ausgeführt wurde, und das animierte GIF muss sofort ausgeblendet werden, wenn der serverseitige Java-Code beendet wurde.
Dies ist der Struts2-Submit-Button, der die HTTP-Anfrage startet, wenn der Button gedrückt wurde:
Code: Select all
Code: Select all
function myJsFunction(){
$.ajax({
type: "POST",
dataType: 'binary',
url: "myActionClass.action",
data: {//some necessary input values},
success: function(data){
console.log(data);
// js code to disappeared the animated gif image
}
});
}
Code: Select all
private void returnExcelFileAsStream(final String filename) throws IOException {
final InputStream is = new FileInputStream(filename);
OutputStream os = null;
try {
response.setContentType("application/pdf");
response.setHeader("Cache-Control", "maxage=3600");
response.setHeader("Pragma", "public");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
os = response.getOutputStream();
int len;
byte buf[] = new byte[1024];
while ((len = is.read(buf)) > 0) {
os.write(buf, 0, len);
}
is.close();
os.close();
}
catch(Exception e){
// some exeception handling
}
}
Code: Select all
public String execute(){
// some Java code
returnExcelFileAsStream("MyExcelFile.xlsx")
return null;
}
Code: Select all
/WEB-INF/base/jsp/myJspPage.jsp