例子:
package com.weihua.common.util;
import org.apache.velocity.tools.view.tools.*; import javax.servlet.http.HttpServletRequest; import org.apache.velocity.tools.view.context.ViewContext; import javax.servlet.http.*; import org.apache.velocity.context.*; import javax.servlet.ServletContext; import org.apache.velocity.VelocityContext;
public class MyVelocityTool implements ViewTool {
protected HttpServletRequest request; protected HttpServletResponse response; protected ServletContext context; protected VelocityContext velocity;
/* * Initialize toolbox * @see org.apache.velocity.tools.view.tools.ViewTool#init(java.lang.Object) */ public void init(Object arg0) { if(arg0 instanceof ViewContext){ ViewContext viewContext = (ViewContext) arg0; request = viewContext.getRequest(); response = viewContext.getResponse(); context = viewContext.getServletContext(); velocity = (VelocityContext)viewContext.getVelocityContext(); } else if(arg0 instanceof ServletContext){ context = (ServletContext)arg0; } }
/** * 取得当前的vm所在的路径 * @return String */ public String current_template(){ return velocity.getCurrentTemplateName(); } public String getVelocityName() { return "velocity!hello"; } }
toolbox.xml中配置
<tool> <key>dlog</key> <scope>request</scope> <class>com.weihua.common.util.MyVelocityTool</class> </tool>
有时会没有用,在velocity.properties中加
file.resource.loader.cache=false;
再多刷新几次就有用了。 |