KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > ajax > AbstractAjaxHTMLAction


1 package com.sslexplorer.ajax;
2
3 import java.io.PrintWriter JavaDoc;
4
5 import javax.servlet.http.HttpServletRequest JavaDoc;
6 import javax.servlet.http.HttpServletResponse JavaDoc;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13
14 import com.sslexplorer.boot.Util;
15 import com.sslexplorer.core.actions.AuthenticatedAction;
16
17 /**
18  * Abstract action for use by action implementations that returns HTML documents
19  * or fragments for use by Ajax scripts.
20  * <p>
21  * Implementations will probably require some attributes to be passed.
22  *
23  * @author Brett Smith <a HREF="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
24  */

25
26 public abstract class AbstractAjaxHTMLAction extends AuthenticatedAction {
27     
28     final static Log log = LogFactory.getLog(AbstractAjaxHTMLAction.class);
29
30     /**
31      * Handle the request
32      *
33      * @param mapping mapping
34      * @param form form
35      * @param request request
36      * @param response response
37      * @param buf string buffer
38      * @throws Exception on any array
39      */

40     protected abstract void onAjaxRequest(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
41                     HttpServletResponse JavaDoc response, StringBuffer JavaDoc buf) throws Exception JavaDoc;
42
43     /* (non-Javadoc)
44      * @see com.sslexplorer.core.actions.AuthenticatedAction#onExecute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
45      */

46     protected ActionForward onExecute(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
47                     HttpServletResponse JavaDoc response) throws Exception JavaDoc {
48         try {
49             StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
50             onAjaxRequest(mapping, form, request, response, buf);
51
52             // Set content to html
53
response.setContentType("text/html; charset=UTF-8");
54             Util.noCache(response);
55             PrintWriter JavaDoc pw = response.getWriter();
56             pw.write(buf.toString());
57             pw.close();
58         }
59         catch(Exception JavaDoc e) {
60             log.error("Error processing Ajax request.", e);
61             response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error processing ajax request. " + e.getMessage());
62         }
63         return null;
64     }
65 }
66
Popular Tags