velocity
package com.g3net.templeteEngine; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.apache.velocity.Template; import org.apache.velocity.app.Velocity; import org.apache.velocity.runtime.resource.loader.StringResourceLoader; import org.apache.velocity.runtime.resource.util.StringResource; import org.apache.velocity.runtime.resource.util.StringResourceRepository; import com.g3net.tool.StringUtils; /** * 页面模板管理器,只管理string来源的模板 * * */ public class TempleteManager { private static StringResourceRepository repo = null; private static Logger log = Logger.getLogger(TempleteManager.class); private static List<String> tnames=new ArrayList<String>(); static{ //加载类时初始化模版引擎 Velocity.init(TempleteManager.class.getResource("/").getPath()+"/velocity.properties"); repo = StringResourceLoader.getRepository(); repo.setEncoding("utf-8"); } public static Template getTemplete(){ return null; } /** * 将String转化为模板对象 * @param name * @param content */ public static void addTemplete(String name,String content){ if(!StringUtils.hasText(name)||!StringUtils.hasText(content)) { log.debug("输入数据内容为空 name="+name+" content="+content); return ; } if(tnames.size()>10000)//超过一定数量的页面时,就不在增加,巨大数量的页面很有可能程序中存在bug { log.debug("出现异常了。当前模块数量 size="+tnames.size()); return ; } StringResource temp=repo.getStringResource(name); if(temp!=null) { temp.setBody(content); temp.setLastModified(System.currentTimeMillis()); }else{ repo.putStringResource(name, content); tnames.add(name); } } /** * 删除模板 * @param name */ public static void delTemplete(String name){ tnames.remove(name); repo.removeStringResource(name); } /** * 删除所有模板 * @param name * @param content * @return */ public static void delAll(String name,String content){ for (int i = 0; i < tnames.size(); i++) { repo.removeStringResource(tnames.get(i)); } tnames.clear(); } } # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # # specify three resource loaders to use # resource.loader = class , string # # for the loader we call 'file', set the FileResourceLoader as the # class to use, turn off caching, and use 3 directories for templates # #file.resource.loader.description = Velocity File Resource Loader #file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader #file.resource.loader.path = templatedirectory1, anotherdirectory, foo/bar #file.resource.loader.cache = false #file.resource.loader.modificationCheckInterval = 0 # # for the loader we call 'class', use the ClasspathResourceLoader # class.resource.loader.description = Velocity Classpath Resource Loader class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader # # and finally, for the loader we call 'jar', use the JarResourceLoader # and specify two jars to load from # #jar.resource.loader.description = Velocity Jar Resource Loader #jar.resource.loader.class = org.apache.velocity.runtime.resource.loader.JarResourceLoader #jar.resource.loader.path = jar:file:/myjarplace/myjar.jar, jar:file:/myjarplace/myjar2.jar resource.loader = string string.resource.loader.description = Velocity StringResource loader string.resource.loader.class = org.apache.velocity.runtime.resource.loader.StringResourceLoader string.resource.loader.repository.class = org.apache.velocity.runtime.resource.util.StringResourceRepositoryImpl
相关推荐
Kafka 2020-09-18
Wepe0 2020-10-30
杜倩 2020-10-29
windle 2020-10-29
minerd 2020-10-28
mengzuchao 2020-10-22
Junzizhiai 2020-10-10
bxqybxqy 2020-09-30
风之沙城 2020-09-24
kingszelda 2020-09-22
大唐帝国前营 2020-08-18
yixu0 2020-08-17
TangCuYu 2020-08-15
xiaoboliu00 2020-08-15
songshijiazuaa 2020-08-15
xclxcl 2020-08-03
zmzmmf 2020-08-03
newfarhui 2020-08-03
likesyour 2020-08-01