templateloader.java

来自「cwbbs 云网论坛源码」· Java 代码 · 共 155 行

JAVA
155
字号
package com.cloudwebsoft.framework.template;import java.io.File;import java.io.IOException;import cn.js.fan.cache.jcs.RMCache;import com.cloudwebsoft.framework.util.LogUtil;import javax.servlet.http.HttpServletRequest;import cn.js.fan.util.ErrMsgException;import java.io.StringReader;public class TemplateLoader {    HttpServletRequest request;    String fileName = null;    static final String cacheGroup = "cws.framework.TemplateLoader";        ITemplate template = null;        public String getFileName() {        return fileName;    }        public TemplateLoader(HttpServletRequest request, String fileName) throws IOException,ErrMsgException {        this.request = request;        this.fileName = fileName;        load();    }        public static void refreshTemplate(String templateCacheKey) {        try {            RMCache.getInstance().remove(templateCacheKey, cacheGroup);        } catch (Exception e) {            LogUtil.getLog("com.cloudwebsoft.framework.template.TemplateLoader").error("refreshTemplate:" + e.getMessage());        }    }        public TemplateLoader(HttpServletRequest request, String cacheKey, String templateStr) throws IOException, ErrMsgException {        this.request = request;        loadFromString(cacheKey, templateStr);    }    public void loadFromString(String cacheKey, String templateStr) throws IOException, ErrMsgException {        try {            template = (ITemplate) RMCache.getInstance().getFromGroup(                    cacheKey,                    cacheGroup);        } catch (Exception e) {            LogUtil.getLog(getClass()).error("loadFromString1:" + e.getMessage());        }        if (template == null) {            Parser parser = new Parser();            StringReader sr = new StringReader(templateStr);            template = parser.parse(sr);            if (template != null) {                try {                    RMCache.getInstance().putInGroup(cacheKey, cacheGroup,                                                     template);                } catch (Exception e) {                    LogUtil.getLog(getClass()).error("loadFromString2:" +                                                     e.getMessage());                }            }        }    }        public ITemplate getTemplate() {        return template;    }        public boolean isFileModified() {        long theFiletime = new File(fileName).lastModified();        Long lmt = null;        long lastModifiedTime = 0;        try {            lmt = (Long) RMCache.getInstance().getFromGroup(                    "lastModifiedTime_" + fileName,                    cacheGroup);        } catch (Exception e) {            LogUtil.getLog(getClass()).error("isFileModified:" + e.getMessage());        }        if (lmt!=null)            lastModifiedTime = lmt.longValue();        boolean re = lastModifiedTime != theFiletime;                return re;    }    public void loadFromFile() throws IOException,ErrMsgException {        Parser parser = new Parser();                template = parser.parse(fileName);        long lastModifiedTime = new File(fileName).lastModified();        try {            RMCache.getInstance().putInGroup("lastModifiedTime_" + fileName, cacheGroup,                    new Long(lastModifiedTime));        } catch (Exception e) {            LogUtil.getLog(getClass()).error("loadFromFile:" + e.getMessage());        }            }        public void load() throws IOException,ErrMsgException {                if (isFileModified()) {            loadFromFile();            if (template!=null) {                try {                    RMCache.getInstance().putInGroup(fileName, cacheGroup,                            template);                } catch (Exception e) {                    LogUtil.getLog(getClass()).error("load:" + e.getMessage());                }            }        } else {            try {                template = (ITemplate) RMCache.getInstance().getFromGroup(                        fileName,                        cacheGroup);            } catch (Exception e) {                LogUtil.getLog(getClass()).error("load:" + e.getMessage());            }            if (template == null) {                loadFromFile();                if (template != null) {                    try {                        RMCache.getInstance().putInGroup(fileName, cacheGroup,                                template);                    } catch (Exception e) {                        LogUtil.getLog(getClass()).error("load:" + e.getMessage());                    }                }            }        }    }    public String toString() {        return template.toString(request, null);    }}

⌨️ 快捷键说明

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