/** *//** * <p>Return an <code>Action</code> instance that will be used to process * the current request, creating a new one if necessary.</p> * * @param request The servlet request we are processing * @param response The servlet response we are creating * @param mapping The mapping we are using * @return An <code>Action</code> instance that will be used to process * the current request. * @throws IOException if an input/output error occurs */ protected Action processActionCreate(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws IOException ...{ // Acquire the Action instance we will be using (if there is one) String className = mapping.getType(); //这里就是获取action的type属性 if (log.isDebugEnabled()) ...{ log.debug(" Looking for Action instance for class "+ className); } // If there were a mapping property indicating whether // an Action were a singleton or not ([true]), // could we just instantiate and return a new instance here? Action instance; synchronized (actions) ...{ // Return any existing Action instance of this class instance = (Action) actions.get(className);//根据属性选择相应的Action对象 if (instance !=null) ...{ if (log.isTraceEnabled()) ...{ log.trace(" Returning existing Action instance"); } return (instance); } // Create and return a new Action instance if (log.isTraceEnabled()) ...{ log.trace(" Creating new Action instance"); } try...{ instance = (Action) RequestUtils.applicationInstance(className); // Maybe we should propagate this exception // instead of returning null. }catch (Exception e) ...{ log.error(getInternal().getMessage("actionCreate", mapping.getPath()), e); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, getInternal().getMessage("actionCreate", mapping.getPath())); return (null); } actions.put(className, instance); } if (instance.getServlet() ==null) ...{ instance.setServlet(this.servlet); } return (instance); }
var callback = ... var data = ... var url ="A1Ajax.do"; var async =true; //异步 var method = "GET"; var oj = createHttpRequest(); ... oj.open(method, url, async); oj.send(data);