当前位置:网站首页 > Java教程 > 正文

java velocity 教程



Velocity学习Markdown文档下载

Velocity是一个基于Java的模板引擎,可以通过特定的语法获取在java对象的数据 , 填充到模板中,从而实现界面和java代码的分离!
image

  • Web应用程序 : 作为为应用程序的视图, 展示数据。
  • 源代码生成 : Velocity可用于基于模板生成Java源代码
  • 自动电子邮件 : 网站注册 , 认证等的电子邮件模板
  • 网页静态化 : 基于velocity模板 , 生成静态网页

image
Velocity主要分为app、context、runtime和一些辅助util几个部分。

  • app模块 : 主要封装了一些接口 , 暴露给使用者使用。主要有两个类,分别是Velocity(单例)和VelocityEngine。
  • Context模块 : 主要封装了模板渲染需要的变量
  • Runtime模块 : 整个Velocity的核心模块,Runtime模块会将加载的模板解析成语法树,Velocity调用mergeTemplate方法时会渲染整棵树,并输出最终的渲染结果。
  • RuntimeInstance类为整个Velocity渲染提供了一个单例模式,拿到了这个实例就可以完成渲染过程了。

使用velocity定义html模板 , 将动态数据填充到模板中 , 形成一个完整的html页面

  1. 创建项目(maven)
  2. 引入依赖
  3. 定义模板
  4. 输出html

image

 

在项目目录下创建模板文件

 
 

Velocity解决了如何在后台程序和网页之间传递数据的问题,后台代码和视图之间相互独立,一方的修改不影响另一方 .

他们之间是通过环境变量(Context)来实现的,网页制作一方和后台程序一方相互约定好对所传递变量的命名约定,比如上个程序例子中的site, name变量,它们在网页上就是$name ,$site 。

只要双方约定好了变量名字,那么双方就可以独立工作了。无论页面如何变化,只要变量名不变,那么后台程序就无需改动,前台网页也可以任意由网页制作人员修改。这就是Velocity的工作原理。
image

Velocity Template Language (VTL) , 是Velocity 中提供的一种模版语言 , 旨在提供最简单和最干净的方法来将动态内容合并到网页中。简单来说VTL可以将程序中的动态数展示到网页中

VTL的语句分为4大类:注释 , 非解析内容 , 引用指令。

1. 行注释

 

2. 块注释

 

3. 文档注释

 
 

所谓非解析内容也就是不会被引擎解析的内容。

 
 

引用语句就是对引擎上下文对象中的属性进行操作。语法方面分为常规语法()和正规语法(${属性})。

语法

 

示例

 

语法

 

示例

 

方法引用实际就是指方法调用操作,关注点返回值参数 , 方法的返回值将输出到最终结果中

语法

 

示例

 

指令主要用于定义重用模块、引入外部资源、流程控制。指令以 作为起始字符。

#set

作用 : 在页面中声明定义变量

语法:

示例 :

 

#if/#elseif/#else

作用 : 进行逻辑判断

语法 :

 

示例 :

 

#foreach

作用 : 遍历循环数组或者集合

格式:

 
 

示例 :

 

#include

作用 : 引入外部资源 , 引入的资源不会被引擎所解析

语法 :

  • resource可以为单引号或双引号的字符串,也可以为$变量,内容为外部资源路径。
  • 注意 : 路径如果为相对路径,则以引擎配置的文件加载器加载路径作为参考

示例 :

 

#parse

作用 : 引入外部资源 , 引入的资源将被引擎所解析

语法 :

  • resource可以为单引号或双引号的字符串,也可以为$变量,内容为外部资源路径。
  • 注意 : 路径如果为相对路径,则以引擎配置的文件加载器加载路径作为参考系

示例 :

 

#define

作用 :

语法 :

 

示例 :

 

#evaluate

作用 : 动态计算 , 动态计算可以让我们在字符串中使用变量

语法 :

示例 :

 

作用 : 定义重用模块(可带参数)

语法 :

定义语法

 

调用语法

 

示例 :

 

在实际项目开发过程中, 编写基础的CRUD操作代码, 往往会花费我们大量的时间 , 而且这些CRUD代码的基础结构基本上是固定的 , 如果能有一个代码生成器 , 能够帮助我们把这些代码生成出来 , 我们就可以节省出大量的时间关注核心业务代码的开发, 大大提高了我们的开发效率 !

需求 : 使用velocity实现一个简单的代码生成器 , 生成项目开发过程中的基础CRUD代码

  1. 创建项目
  2. 导入依赖
  3. 编写模板
  4. 生成代码

image

 

一般我们的项目开发将项目分为三层 , 我们的代码生成器就基于传统的三层架构生成代码 , 所以我们需要为每一层的每一个类创建模板 , 所以需要有如下模板 :

  • Controller.java.vm : 控制层模板
  • Service.java.vm : 业务层接口模板
  • ServiceImpl.java.vm : 业务层实现模板
  • Dao.java.vm : 数据服务层模板(数据访问层基于通用Mpper实现)

Controller.java.vm

 

Service.java.vm

 

ServiceImpl.java.vm

 

Dao.java.vm

 

我们可以封装一个生成代码的工具类 , 后期生成代码运行工具类即可

 
 

运行完毕之后, 可以看到输出路径下回自动生成一个压缩文件 , 解压之后将里面的代码copy到我们的项目之中即可 ! </string,object></string,object></string,>

版权声明


相关文章:

  • java封装教程免费2025-03-19 23:26:01
  • java教程336集2025-03-19 23:26:01
  • java卡基岩教程2025-03-19 23:26:01
  • 免费java 学习教程推荐2025-03-19 23:26:01
  • 红石刷怪塔教程java2025-03-19 23:26:01
  • 雷霆战机java教程2025-03-19 23:26:01
  • java教程推荐2025-03-19 23:26:01
  • java 移位运算教程2025-03-19 23:26:01
  • 马士兵java视频教程 百度云2025-03-19 23:26:01
  • java手动安装教程2025-03-19 23:26:01