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 + -
显示快捷键?