博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Velocity 官方实例学习一 (app_example1)
阅读量:6433 次
发布时间:2019-06-23

本文共 2190 字,大约阅读时间需要 7 分钟。

hot3.png

刚接触模板语言,主要是想通过模板自动生成一些具有共性的代码块,让自己的开发效率有所提升,因为公司的SSH框架形成了一套固定的模式,我的想法是通过模板,把每次开发中需要的界面可以自动的生成,自己更多关心逻辑业务的编写。

Velocity的使用入门看了下Example感觉确实很比较容易上手,很适合目前的想法。

Example.java

public class Example {	public Example(String templateFile) {		try {			/*			 * setup			 */			//创建Propertis对象,可用properties文件保存			Properties p = new Properties();			// 设置输入输出编码类型			p.setProperty(Velocity.INPUT_ENCODING, "UTF-8");			p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");			// 初始化模板文件的加载路径 缺省是使用文件系统读取模板文件 模板路径需要放置于class/                        //src目录下			p.setProperty("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");			//p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, Example.class.getClassLoader().getResource("").getPath());			Velocity.init(p);			//数据填充对象			VelocityContext context = new VelocityContext();			context.put("list", getNames());			//模板对象			Template template = null;			try {				template = Velocity.getTemplate(templateFile);			} catch (ResourceNotFoundException rnfe) {				System.out.println("Example : error : cannot find template "						+ templateFile);			} catch (ParseErrorException pee) {				System.out.println("Example : Syntax error in template "						+ templateFile + ":" + pee);			}			//输出流			BufferedWriter writer = writer = new BufferedWriter(					new OutputStreamWriter(System.out));			if (template != null)				template.merge(context, writer);			/*			 * flush and cleanup			 */			writer.flush();			writer.close();		} catch (Exception e) {			System.out.println(e);		}	}	public ArrayList getNames() {		ArrayList list = new ArrayList();		list.add("ArrayList element 1");		list.add("ArrayList element 2");		list.add("ArrayList element 3");		list.add("ArrayList element 4");		return list;	}	public static void main(String[] args) {		String templateFilePath = "template/example.vm";		Example t = new Example(templateFilePath);	}}
example.vm
##设置一个值为“Velocity”的变量 $this#set( $this = "Velocity")##取值 或者${this}$this is great!##遍历一个List#foreach( $name in $list )    $name is great!#end#set( $condition = true)##条件控制#if ($condition)    The condition is true!#else    The condition is false!#end

转载于:https://my.oschina.net/liujiaxing/blog/115875

你可能感兴趣的文章
Web service是什么?
查看>>
python 问题集合
查看>>
豌豆荚工程师谈其新版应用搜索技术
查看>>
螺旋阵(递归和非递归)
查看>>
我的爷爷(知识渊博的下乡知青)
查看>>
jQuery动画连续触发、滞后反复执行解决办法
查看>>
uva 10405 Longest Common Subsequence
查看>>
HttpFileCollection类
查看>>
Eclipse使用常见设置
查看>>
控制台下的字符图像界面
查看>>
c++ 数组形参
查看>>
Memcache的安全
查看>>
KVM/Xen and libvirt: currentMemory, memory and ballooning
查看>>
metasploit 笔记
查看>>
hdu 2845(最大不连续子序列)
查看>>
J2me的异常处理和多线程
查看>>
选择、生成-EA与数据库的交互-by小雨
查看>>
客户网页WIZnet无线解决方案 之 太阳能逆变器
查看>>
CCRepeatForever和CCDelayTime
查看>>
android jni aotf 错误
查看>>