这今天“弄”军哥的管理系统,里面由涉及到一部分的FreeMarker的知识,并且我那些学生在亚信实习也涉及到这部分的知识,所以想开始总结一些FreeMarker,正好我可开始使用一下Maven,简单的入门!如果这里有什么不会的,我的学生请留言或者在QQ上挑逗一下我,哈哈!我只对我的学生负责,如果是大神级别的就不要麻烦我了!谢谢理解!

关于如何在MyEclipse2014搭建Maven环境,抱歉这里就不说了!有想知道的,我给学生发视频!


使用Maven快速建立项目:

1.新建Maven项目

直接点击下一步

这里什么都不用管,直接点击下一步即可

使用的是快速搭建,选择好之后,点击NEXT

通过GAV搞定坐标,点击完成即可!


最终的项目结构图如下:

这些类都是我重新写的!

第一步,修改pom.xml文件,代码如下

    <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 引入Freemarker的依赖 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
</dependencies>

注意:我修改了单元测试的版本号码和依赖了最新的freemarker的支持

第二步,新建模版文件,后缀名一般情况下为ftl,全名为freemarker+template的缩写,demo.ftl的代码如下

你好:${user_name}

这是最简单的形式了

第三步,建立读取demo.ftl的帮助文件,FreemarkerUtil.java文件

public class FreemarkerUtil {

    public Template getTemplate(String name){
try {
//通过Freemarker的Configuration读取相应的ftl
Configuration configuration = new Configuration(Configuration.VERSION_2_3_23);//这里是对应的你使用jar包的版本号:<version>2.3.23</version> //configuration.setDirectoryForTemplateLoading(new File("/ftl")); //如果是maven项目可以使用这种方式
configuration.setClassForTemplateLoading(this.getClass(), "/ftl"); Template template = configuration.getTemplate(name); return template;
} catch (IOException e) {
e.printStackTrace();
} return null;
} public void print(String name,Map<String, Object> root){
//通过Template可以将模版文件输出到相应的文件流
Template template = this.getTemplate(name);
try {
template.process(root, new PrintWriter(System.out));//在控制台输出内容
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }

第四步,写测试类进行测试

public class FreemarkerTest{

    FreemarkerUtil fu = null;

    @Before
public void init(){
if(fu==null){
fu = new FreemarkerUtil();
}
} @Test
public void 读取模版现实在控制台(){
//1.创建数据模型
Map<String, Object> root = new HashMap<String, Object>();
//2.赋值
root.put("user_name", "胖先生");
//3.将数据模型和模版进行结合输出到控制台显示
fu.print("demo.ftl", root); }
}

进行测试,结果如下,在控制台上可以输入:    你好:胖先生   -->代表成功了!


如果同学不会使用maven那么说明你已经落后了,但是也可以使用普通的jave项目搞定,这里提供了freemarker的下载地址

http://mvnrepository.com/artifact/org.freemarker/freemarker/2.3.23

请自行下载


备注一下,我在使用maven test命令的时候报错了并且解决了

check $M2_HOME environment variable and mvn script match.

解决方法如下:

1.添加M2_HOME的环境变量,这个步骤以前就已经搞定了

2.Preference->Java->Installed JRES->Edit 选择一个jdk

-Dmaven.multiModuleProjectDirectory=$M2_HOME

环境变量中的代码,这里配置上可能有点问题,但是解决上面的问题

[freemarker篇]01.入门Freemarker示例的更多相关文章

  1. Spring Boot入门——freemarker

    使用步骤: 1.在pom.xml中添加相关依赖 <!-- 添加freemarker依赖 --> <dependency> <groupId>org.springfr ...

  2. freemarker的简单入门程序

    本文主要介绍了freemarker的常用标签<#list>   <#import>  <#assign>  <#if> <#else> &l ...

  3. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  4. Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门

    文章目录 1. 声明式缓存 2. Spring Boot默认集成CacheManager 3. 默认的 ConcurrenMapCacheManager 4. 实战演练5. 扩展阅读 4.1. Mav ...

  5. iOS开发数据库篇—SQL代码应用示例

    iOS开发数据库篇—SQL代码应用示例 一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在 ...

  6. freemarker学习 (servlet + freemarker -> Struts2+freemarker -> springMVC+freemarker)

    什么是freemarker? freemarker类似于jsp,但不是jsp!怎么说呢?freemarker文件后缀是.ftl,它不像jsp本质是servlet,它将构建模板.解析模板.使用模板分离开 ...

  7. [译]Vulkan教程(01)入门

    [译]Vulkan教程(01)入门 接下来我将翻译(https://vulkan-tutorial.com)上的Vulkan教程.这可能是我学习Vulkan的最好方式,但不是最理想的方式. 我会用“d ...

  8. net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了   原文链接:https://www.cnblogs.com/yilezhu/p/9985451.ht ...

  9. [freemarker篇]06.超级强大的自定义指令

    Freemarker的自定义指令是很强大的,非常强大,在之后的教程中我会简单的做一个示例,让大家对其有所了解!如果做Freemarker编程,请好好看看API手册,可以说里面的内容很多!也是一门独立的 ...

随机推荐

  1. 洛谷 P1706 全排列问题 :STL / dfs

    题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列, ...

  2. SpringCloud IDEA 教学 (一) Eureka的简介与服务注册中心的建立

    写在开头 SpringCloud进来成为业界排名靠前的微服务框架,最核心功能就是搭建微服务,并在此基础上衍生出一系列功能,如断路器(Hystrix).断路监控.管理配置.Zuul.OAuth2等功能. ...

  3. ServiceStack.Ormlit 事务

    应该使用这个方法开启事务 public static IDbTransaction OpenTransaction(this IDbConnection dbConn) { return new Or ...

  4. python中spilt()函数和os.path.spilt()函数区别

    Python中有split()和os.path.split()两个函数: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表. os.path.split():将文件 ...

  5. 左值&右值

    一.引子 我们所谓的左值.右值,正确的说法应该是左值表达式.右值表达式. 因为C++的表达式不是左值就是右值. 在C中,左值指的是既能够出现在等号左边也能出现在等号右边的表达式,右值指的则是只能出现在 ...

  6. activiti工作流已办和待办查询sql

    最近项目中遇到一个问题,需要activiti的工作流表和业务表关联分页查询,然而我对于工作流的查询并不太熟悉,所以学习并总结如下. 想看看activiti到底怎么查询的待认领和待办.已办的查询sql, ...

  7. Microsoft.Practices.EnterpriseLibrary

    项目中使用了Microsoft.Practices.EnterpriseLibrary这个东西,根据名字猜测和微软有关系(可以翻译为:微软实践企业库). 看到了引入了两个命名空间: using Mic ...

  8. Js键盘事件全面控制,回车按键事件,键盘对应按键码,按键事件兼容各个浏览器。

    在网上查询的按键码如下: 一.键盘按键和键盘对应代码表:   字母按键码A <--------> 65 B <--------> 66 C <--------> 6 ...

  9. 修改IntelliJ IDEA代码头注释

  10. 第三部分shell编程3(shell脚本2)

    7. if 判断一些特殊用法 if [ -z $a ] 这个表示当变量a的值为空时会怎么样if grep -q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样if ...