⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javaactionfactory.java

📁 webwork source
💻 JAVA
字号:
/* * WebWork, Web Application Framework * * Distributable under Apache license. * See terms of license at opensource.org */package webwork.action.factory;import webwork.action.Action;import webwork.util.ClassLoaderUtils;import java.util.HashMap;import java.util.Map;/** * Returns a loaded and instantiated action class instance. * * @author Rickard Öberg (rickard@middleware-company.com) * @version $Revision: 1.13 $ */public class JavaActionFactory   extends ActionFactory{   // Attributes ----------------------------------------------------   ClassLoader actionLoader;   Map actionMapping = new HashMap();   // HttpServlet overrides -----------------------------------------   public JavaActionFactory()   {      // Choose classloader      actionLoader = Thread.currentThread().getContextClassLoader();   }  /**   * Returns a loaded and instantiated action class instance using a fully   * qualified classname.   *   * @param   name classname of the action to be created   * @return   get the action corresponding to the given Java class name   * @exception   Exception   */   public Action getActionImpl(String name)     throws Exception   {      // Check cache      Class actionClass = (Class)actionMapping.get(name);      // Find class using cached actionLoader, or else try Class.forName() as a backup      if (actionClass == null)      {         try         {            actionClass = actionLoader.loadClass(name);         } catch (ClassNotFoundException e)         {             try             {                 actionClass = ClassLoaderUtils.loadClass(name, JavaActionFactory.class);             } catch (Exception e2)             {                // Not found or could not be instantiated                throw new IllegalArgumentException("Action '"+name+"' not found or could not be initialized: "+e2);             }         } catch (NoClassDefFoundError e)         {             try             {                 actionClass = ClassLoaderUtils.loadClass(name, JavaActionFactory.class);             } catch (Throwable e2)             {                // Not found or could not be instantiated                throw new IllegalArgumentException("Action '"+name+"' not found or could not be initialized: "+e2);             }         }         // Put action class in cache         actionMapping.put(name, actionClass);      }      try      {         return (Action)actionClass.newInstance();      } catch (Exception e)      {         throw new IllegalArgumentException("Action '"+name+"' could not be instantiated:"+e);      }   }   public void flushCaches() {      actionMapping.clear();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -