我想從struts2調用一個javascript函數。從Struts2操作類調用Javascript
package com.example.controller;
import java.io.IOException;
import java.io.PrintWriter;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletResponseAware;
public class FileUploadAction extends ActionSupport implements ServletResponseAware {
private static final long serialVersionUID = 1L;
HttpServletResponse response;
public String execute() throws IOException{
System.out.println("I am in Action");
PrintWriter out;
out = response.getWriter();
response.setContentType("text/html");
out.println("<html>");
out.println("<head>");
out.println("<script type=\"text/javascript\">");
out.println("function foo() { ");
out.println("alert('From Struts Action');");
out.println("window.top.uploadComplete('1');");
out.println("}");
out.println("</script>");
out.println("</head>");
out.println("<body onload=\"foo();\">");
out.println("</body>");
out.println("</html>");
return SUCCESS;
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public HttpServletResponse getServletResponse() {
return this.response;
}
}
在這裏,我甚至沒有得到'警覺'。即它不工作, 並在後端,它拋出警告
[WARN] 404 - GET /success (127.0.0.1) 1393 bytes
Request headers
Host: 127.0.0.1:8888
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: JSESSIONID=pvv1gasa4o7l
Referer: http://127.0.0.1:8888/GWTDemo.html?gwt.codesvr=127.0.0.1:9997
Response headers
Content-Type: text/html; charset=iso-8859-1
Content-Length: 1393
請幫助?
史蒂芬嗨,你好,感謝響應。 。我正在使用SmartGWT的struts上傳文件上傳,我需要在上傳文件後實現回調。所以,我創建了一個使用Javascript調用的JSNI。所以,我在Struts中寫了Javascript。 – 2011-01-21 07:15:37