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

📄 freemarkerworker.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    public static Object getArgObject(Map args, String key, Map templateContext) {        //SimpleScalar s = null;        Object o = null;        Object returnVal = null;        o = args.get(key);        returnVal = unwrap(o);        if (returnVal == null) {            try {                if (templateContext != null) {                    returnVal = templateContext.get(key);                }            } catch (ClassCastException e2) {                //return null;            }        }        return returnVal;    }   /**    * Gets BeanModel from FreeMarker context and returns the object that it wraps.    * @param varName the name of the variable in the FreeMarker context.    * @param env the FreeMarker Environment    */    public static Object getWrappedObject(String varName, Environment env) {        Object obj = null;        try {            obj = env.getVariable(varName);            if (obj != null) {                if (obj == TemplateModel.NOTHING) {                    obj = null;                } else if (obj instanceof BeanModel) {                    BeanModel bean = (BeanModel) obj;                    obj = bean.getWrappedObject();                } else if (obj instanceof SimpleScalar) {                    obj = obj.toString();                }            }        } catch (TemplateModelException e) {            Debug.logInfo(e.getMessage(), module);        }        return obj;    }   /**    * Gets BeanModel from FreeMarker context and returns the object that it wraps.    * @param varName the name of the variable in the FreeMarker context.    * @param env the FreeMarker Environment    */    public static BeanModel getBeanModel(String varName, Environment env) {        BeanModel bean = null;        try {            bean = (BeanModel) env.getVariable(varName);        } catch (TemplateModelException e) {            Debug.logInfo(e.getMessage(), module);        }        return bean;    }    public static Object get(SimpleHash args, String key) {        Object returnObj = null;        Object o = null;        try {            o = args.get(key);        } catch(TemplateModelException e) {            Debug.logVerbose(e.getMessage(), module);            return returnObj;        }        returnObj = unwrap(o);        if (returnObj == null) {            Object ctxObj = null;            try {                ctxObj = args.get("context");            } catch(TemplateModelException e) {                Debug.logInfo(e.getMessage(), module);                return returnObj;            }            Map ctx = null;            if (ctxObj instanceof BeanModel) {                ctx = (Map)((BeanModel)ctxObj).getWrappedObject();            returnObj = ctx.get(key);            }            /*            try {                Map templateContext = (Map)FreeMarkerWorker.getWrappedObject("context", env);                if (templateContext != null) {                    returnObj = (String)templateContext.get(key);                }            } catch(ClassCastException e2) {                //return null;            }            */        }        return returnObj;    }    public static Object unwrap(Object o) {        Object returnObj = null;        if (o == TemplateModel.NOTHING) {            returnObj = null;        } else if (o instanceof SimpleScalar) {            returnObj = o.toString();        } else if (o instanceof BeanModel) {            returnObj = ((BeanModel)o).getWrappedObject();        }            return returnObj;    }    public static void checkForLoop(String path, Map ctx) throws IOException {        List templateList = (List)ctx.get("templateList");        if (templateList == null) {            templateList = new ArrayList();        } else {            if (templateList.contains(path)) {                throw new IOException(path + " has already been visited.");            }        }        templateList.add(path);        ctx.put("templateList", templateList);        return;    }    public static Map createEnvironmentMap(Environment env) {        Map templateRoot = new HashMap();        Set varNames = null;        try {            varNames = env.getKnownVariableNames();        } catch (TemplateModelException e1) {            Debug.logError(e1, "Error getting FreeMarker variable names, will not put pass current context on to sub-content", module);        }        if (varNames != null) {            Iterator varNameIter = varNames.iterator();            while (varNameIter.hasNext()) {                String varName = (String) varNameIter.next();                //freemarker.ext.beans.StringModel varObj = (freemarker.ext.beans.StringModel ) varNameIter.next();                //Object varObj =  varNameIter.next();                //String varName = varObj.toString();                templateRoot.put(varName, FreeMarkerWorker.getWrappedObject(varName, env));            }        }        return templateRoot;    }        public static void saveContextValues(Map context, String [] saveKeyNames, Map saveMap ) {        //Map saveMap = new HashMap();        for (int i=0; i<saveKeyNames.length; i++) {            String key = (String)saveKeyNames[i];            Object o = context.get(key);            if (o instanceof Map)                o = new HashMap((Map)o);            else if (o instanceof List)                o = new ArrayList((List)o);            saveMap.put(key, o);        }        return ;    }    public static Map saveValues(Map context, String [] saveKeyNames) {        Map saveMap = new HashMap();        for (int i=0; i<saveKeyNames.length; i++) {            String key = (String)saveKeyNames[i];            Object o = context.get(key);            if (o instanceof Map)                o = new HashMap((Map)o);            else if (o instanceof List)                o = new ArrayList((List)o);            saveMap.put(key, o);        }        return saveMap;    }    public static void reloadValues(Map context, Map saveValues, Environment env ) {        Set keySet = saveValues.keySet();        Iterator it = keySet.iterator();        while (it.hasNext()) {            String key = (String)it.next();            Object o = saveValues.get(key);            if (o instanceof Map) {                Map map = new HashMap();                map.putAll((Map)o);                context.put(key, map);            } else if (o instanceof List) {                List list = new ArrayList();                list.addAll((List)o);                context.put(key, list);            } else {                context.put(key, o);            }            env.setVariable(key, autoWrap(o, env));        }        return;    }    public static void removeValues(Map context, String [] removeKeyNames ) {        for (int i=0; i<removeKeyNames.length; i++) {            String key = (String)removeKeyNames[i];            context.remove(key);        }        return;    }    public static void overrideWithArgs(Map ctx, Map args) {        Set keySet = args.keySet();        Iterator it = keySet.iterator();        while (it.hasNext()) {            String key = (String)it.next();            Object obj = args.get(key);            //if (Debug.infoOn()) Debug.logInfo("in overrideWithArgs, key(3):" + key + " obj:" + obj + " class:" + obj.getClass().getName() , module);            if (obj != null) {                if (obj == TemplateModel.NOTHING) {                    ctx.put(key, null);                } else {                    Object unwrappedObj = unwrap(obj);                    if (unwrappedObj == null)                        unwrappedObj = obj;                    ctx.put(key, unwrappedObj.toString());                }            } else {                ctx.put(key, null);            }        }        return;    }    public static void convertContext(Map ctx) {        Set keySet = ctx.keySet();        Iterator it = keySet.iterator();        while (it.hasNext()) {            String key = (String)it.next();            Object obj = ctx.get(key);            if (obj != null) {                Object unwrappedObj = unwrap(obj);                if (unwrappedObj != null) {                    ctx.put(key, unwrappedObj);                }            }        }        return;    }    public static void getSiteParameters(HttpServletRequest request, Map ctx) {        if (request == null) {            return;        }        if (ctx == null) {            throw new IllegalArgumentException("Error in getSiteParameters, context/ctx cannot be null");        }        ServletContext servletContext = request.getSession().getServletContext();        String rootDir = (String)ctx.get("rootDir");        String webSiteId = (String)ctx.get("webSiteId");        String https = (String)ctx.get("https");        if (UtilValidate.isEmpty(rootDir)) {            rootDir = servletContext.getRealPath("/");            ctx.put("rootDir", rootDir);        }        if (UtilValidate.isEmpty(webSiteId)) {            webSiteId = (String) servletContext.getAttribute("webSiteId");            ctx.put("webSiteId", webSiteId);        }        if (UtilValidate.isEmpty(https)) {            https = (String) servletContext.getAttribute("https");            ctx.put("https", https);        }        return;    }    public static TemplateModel autoWrap(Object obj, Environment env) {       BeansWrapper wrapper = BeansWrapper.getDefaultInstance();       TemplateModel templateModelObj = null;       try {           templateModelObj = wrapper.wrap(obj);       } catch(TemplateModelException e) {           throw new RuntimeException(e.getMessage());       }       return templateModelObj;    }}

⌨️ 快捷键说明

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