KickJava   Java API By Example, From Geeks To Geeks.

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


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.ajaxtags.helpers.AjaxXmlBuilder;
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11 import org.apache.struts.action.ActionForm;
12 import org.apache.struts.action.ActionForward;
13 import org.apache.struts.action.ActionMapping;
14
15 import com.sslexplorer.boot.Util;
16 import com.sslexplorer.core.actions.AuthenticatedAction;
17
18 /**
19  * Abstract action for use by action implementations that returns XML documents
20  * for use by Ajax scripts.
21  * <p>
22  * Implementations will probably require some attributes to be passed.
23  *
24  * @author Brett Smith <a HREF="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
25  */

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

41     protected abstract void onAjaxRequest(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
42                     HttpServletResponse JavaDoc response, AjaxXmlBuilder builder) throws Exception JavaDoc;
43
44     /* (non-Javadoc)
45      * @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)
46      */

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