【java工具类】导入freemarker并且编写一个freemarker的辅助类
2013-05-07 09:57
316 查看
每次写了存储过程后都要写一堆类似的调用存储过程的java方法,各位有没有这样的感想?
代码生成器最基本要解决两个问题,第一,如何获取数据(数据表,存储过程的参数或者自定义模型);第二,获取了数据以后如何生成字符串(通常用模板引擎)。
这一篇文章将现学现用,探讨如何导入freemaker,如何解析一个模板,如何编写模板(模板语法),如何通过ide获得智能提示(没错,这一点是码农都希望有的),并且编写一个符合自己心意的封装了(封装freemaker的常用操作)。
这一篇文章有讲到:
http://sishuok.com/forum/posts/list/5154.html
下面我将已经编写的辅助类及结果贴上来。
【模板引擎辅助类】
【测试用模板---放在src下面的/tpl/test.ftl】
【使用方式】
【结果】
ok,那么下一步就是编写一个自动生成访问存储过程代码的程序了。
代码生成器最基本要解决两个问题,第一,如何获取数据(数据表,存储过程的参数或者自定义模型);第二,获取了数据以后如何生成字符串(通常用模板引擎)。
这一篇文章将现学现用,探讨如何导入freemaker,如何解析一个模板,如何编写模板(模板语法),如何通过ide获得智能提示(没错,这一点是码农都希望有的),并且编写一个符合自己心意的封装了(封装freemaker的常用操作)。
这一篇文章有讲到:
http://sishuok.com/forum/posts/list/5154.html
下面我将已经编写的辅助类及结果贴上来。
【模板引擎辅助类】
package Easis.ViewEngine; import freemarker.template.Configuration; import freemarker.template.Template; import java.io.StringWriter; import java.util.Map; public class FreemarkerHelper { private Configuration _tplConfig=new Configuration(); /** * @param tplRoot 当前的模板存放目录,譬如:/tpl,请注意,设置模版的文件夹路径,本人在src下新建了一个ftl文件夹 configuration.setClassForTemplateLoading(this.getClass(),"/ftl"); * */ public FreemarkerHelper(String tplRoot){ _tplConfig.setClassForTemplateLoading(this.getClass(),tplRoot); } public String parseTemplate(String tplName,String encoding,Map<String,Object> paras){ try{ StringWriter swriter=new StringWriter(); Template mytpl=_tplConfig.getTemplate(tplName,encoding); mytpl.process(paras,swriter); return swriter.toString(); } catch (Exception e){ e.printStackTrace(); return e.toString(); } } public String parseTemplate(String tplName,Map<String,Object> paras){ return this.parseTemplate(tplName,"utf-8",paras); } }
【测试用模板---放在src下面的/tpl/test.ftl】
你好:${username}
【使用方式】
package TestCase; import Easis.ViewEngine.FreemarkerHelper; import freemarker.template.Configuration; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class testFreemarker { public static void main(String[] args){ FreemarkerHelper viewEngine=new FreemarkerHelper("/tpl"); Map<String,Object> paras=new HashMap<String, Object>(); paras.put("username","欸你好吗?"); String theres=viewEngine.parseTemplate("test.ftl",paras); System.out.println(theres); } }
【结果】
ok,那么下一步就是编写一个自动生成访问存储过程代码的程序了。
相关文章推荐
- 使用java编写一个定期发送邮件通知的工具类
- 在eclipse上编写好一个Java程序后,怎么自动的导入程序需要的包?
- json数据与JAVA数据的转换 jsonJavaBean.netApache 自己编写了一个工具类,处理页面提交json格式数据到后台,再进行处理成JAVA对象数据 1、DTO:Data T
- java编写一个文件查找器
- java十二周实验.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器,当单击
- 将txt文档中内容导入到数据库,并且显示一个对话框,提示用户选择文件的位置
- 如何编写一个高效的Java表达式求值程序
- 编写一个比较完美的equals方法的建议(java)
- 编写一个监控Zookeeper的Java程序,可以通过两种方式 :
- 一个使用JAVA编写的类似按键精灵的程序,支持脚本文件编写(含源代码)
- 一个Java Jenkins工具类,支持创建,构建,带参数构建,删除JenkinsJob,停止Jenkins Job任务等
- 分享一个Java生成二维码工具类
- 【Java】编写一个方法,输出在一个字符串中,指定字符串出现的次数
- 导入的android项目报错,进入一个类,显示不能导入那些基本的java API
- 设计一个含有一个表单的页面,并且在表单上放入一个文本框。编写程序,当鼠标在页面上移动时,鼠标的坐标将显示在这个文本框中。
- 一个java笔试题的实现:用5位字符表示日期,并且要求500年不能重复
- java 高新技术【10】 编写对class文件进行加密的工具类
- 10、 java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
- 【Java】有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串的位置