velocity 1.6.4的一个bug


     $.ajax()在Velocity中会冲突, 总之这个是velocity的一个bug,直接比如在evaluate $.trim的时候,会输出.tirm, $被无缘无故的吃掉了,直接上代码:


import java.io.StringWriter;

import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;

public class VelocityTest{
	
	public static void main(String[] args) {
		//String js = FileUtils.readFileToString(new File("D:/template.txt"),"UTF-8");
		String js = "$.trim";
		try {
		    Velocity.init();

		    VelocityContext context = new VelocityContext();

		    StringWriter w = new StringWriter();
		    Velocity .evaluate(context, w, "", js);
		    
		   
		    js = w.toString();
		    System.out.println(js);
		} catch (Exception e) {
		    e.printStackTrace();
		}
	}
	
}



    这个问题在velocity 1.7一下的版本里面会输出.trim, 但是在1.7 beta里面将这个问题修复了,所以大家在使用的时候注意一下,我已经给项目升级了velocity版本了。另外1.7也支持了一种新的语法 ##[[保留内容]]##, 所以大家把不需要替换的东西放到这个块里面就更安全了。

你可能感兴趣的:(velocity,velocity bug)