先贴具体代码。
Message类中:
public void message(String messageString,String actionString) throws Exception{
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=gbk");
response.setCharacterEncoding("gbk");
PrintWriter out=response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println("<script language='JavaScript'>alert(\""+ messageString +"\");location.replace(\""+actionString+"\");</script>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
Action中:
public String update()throws Exception{
...
if(... !=null){
message.message("修改成功!", "XXX.action");
return null;
}else{
message.message("修改失败!","XXX.action");
return null;
}
}
struts.xml中:
<action name="update" class="XXXAction" method="update">
</action>
曾经出现的问题:
1、location.replace时,地址的写法问题,这个应该不归于这边讨论。
2、如果return 的返回值不为null时,或者xml中,有<result />节点,都会出现控制台打印407错误。
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
3、由于Message类时在工具包中,所以在action中调用的时候,要先new一个,否则会出现message为null,无法完成弹出提示对话框。