Velocity入门

Java Velocity 入门:从“Hello, Velocity!”到深入探索 使用#macro来定义可重用的宏。#end")Velocity 支持自定义函数。// 自定义方法实现});通过这个简单的示例,你已经学会了如何使用 Velocity 创建一个基本的 HTML 页面,并了解了 Velocity 的一些核心特性。Velocity 的强大之处在于其简洁性和灵活性。希望这篇文章能够帮助你入门 Velocity。记得实践是最好的老师,动手试试吧!如果遇到任何问题,欢迎随时提问。😉以上就是 Velocity 的基础入门教程,祝你学习愉快!🌟。 阅读详情
是一篇Velocity入门级的文章,虽然很简单,但确实能够说明Velocity的工作原理,值得一读。

使用Velocity 模板引擎开发网站

Velocity 是如何工作的呢? 虽然大多 Velocity 的应用都是基于 Servlet 的网页制作。但是为了说明 Velocity 的使用,我决定采用更通用的 Java application 来说明它的工作原理。 
  似乎所有语言教学的开头都是采用 HelloWorld 来作为第一个程序的示例。这里也不例外。 

  任何 Velocity 的应用都包括两个方面:
  第一是: 模板制作,在我们这个例子中就是 hellosite.vm:
  它的内容如下(虽然不是以 HTML 为主,但是这很容易改成一个 html 的页面)

Hello $name! Welcome to $site world!
  第二是 Java 程序部分:
  下面是 Java 代码
 程序代码
import  java .io.StringWriter;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
public class HelloWorld{
public static void main( String[] args )throws Exception{
   /* first, get and initialize an engine */
   VelocityEngine ve = new VelocityEngine();
   ve.init();
   /* next, get the Template */
   Template t = ve.getTemplate( "hellosite.vm" );
   /* create a context and add data */
   VelocityContext context = new VelocityContext();
   context.put("name", "Eiffel Qiu");
   context.put("site", "
http://www.j2medev.com ");
   /* now render the template into a StringWriter */
   StringWriter writer = new StringWriter();
   t.merge( context, writer );
   /* show the World */
   System.out.println( writer.toString() ); 
}
}


将两个文件放在同一个目录下、(注意:在做一个项目时模版文件一定不要放在src目录下否则会有异常抛出),编译运行,结果是: 
Hello Eiffel Qiu! Welcome to 
http://www.j2medev.com world 

  为了保证运行顺利,请从 Velocity 的网站 
http://jakarta.apache.org/velocity/ 上下载 Velocity 的运行包,将其中的 Velocity Jar 包的路径放在系统的 Classpath 中,这样就可以编译和运行以上的程序了。

这个程序很简单,但是它能让你清楚的了解 Velocity 的基本工作原理。程序中其他部分基本上很固定,最主要的部分在以下代码 

  这里 Velocity 获取模板文件,得到模板引用

 程序代码
/* next, get the Template */
Template t = ve.getTemplate( "hellosite.vm" );


  这里,初始化环境,并将数据放入环境

 程序代码
/* create a context and add data */
VelocityContext context = new VelocityContext();
context.put("name", "Eiffel Qiu");
context.put("site", "
http://www.j2medev.com ");


  其他代码比较固定,但是也非常重要,但是对于每个应用来说写法都很相同:
这是初始化 Velocity 模板引擎

 程序代码
/* first, get and initialize an engine */
VelocityEngine ve = new VelocityEngine();
ve.init();


  这是用来将环境变量和输出部分结合。

 程序代码
StringWriter writer = new StringWriter();
t.merge( context, writer );
/* show the World */
System.out.println( writer.toString() );


  记住,这在将来的 servlet 应用中会有所区别,因为网页输出并不和命令行输出相同,如果用于网页输出,将并不通过 System.out 输出。这会在以后的教程中给大家解释的。 

那让我来总结一下 Velocity 真正的工作原理: 
  Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题,当然这种传输数据的机制是在 MVC 模式上进行的,也就是View 和 Modle , Controller 之间相互独立工作,一方的修改不影响其他方变动,他们之间是通过环境变量(Context)来实现的,当然双方网页制作一方和后台程序一方要相互约定好对所传递变量的命名约定,比如上个程序例子中的 site, name 变量,它们在网页上就是 $name ,$site 。 这样只要双方约定好了变量名字,那么双方就可以独立工作了。 无论页面如何变化,只要变量名不变,那么后台程序就无需改动,前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。 

  你会发现简单变量名通常无法满足网页制作显示数据的需要,比如我们经常会循环显示一些数据集,或者是根据一些数据的值来决定如何显示下一步的数据, Velocity 同样提供了循环,判断的简单语法以满足网页制作的需要。Velocity 提供了一个简单的模板语言以供前端网页制作人员使用,这个模板语言足够简单(大部分懂得javascript
的人就可以很快掌握,其实它比 javascript 要简单的多),当然这种简单是刻意的,因为它不需要它什么都能做, View 层其实不应该包含更多的逻辑,Velocity 的简单模板语法可以满足你所有对页面显示逻辑的需要,这通常已经足够了,这里不会发生象 jsp 那样因为一个无限循环语句而毁掉系统的情况,jsp 能做很多事情,Sun 在制定 Jsp 1.0 标准的时候,没有及时的限定程序员在 jsp 插入代码逻辑,使得早期的jsp 代码更象是 php 代码,它虽然强大,但是对显示层逻辑来说,并不必要,而且会使 MVC 三层的逻辑结构发生混淆。 

一文掌握SourceTree使用(超级详细) SourceTree是一款开源的代码仓库客户端工具,界面美观,操作简单,具有代码克隆、本地创建、提交代码、撤销修改,拉取(pull)代码、上传(push)代码、合并分支等操作。对于软件开发人员是一款必备的应用软件。 阅读详情

相关推荐

从Starlink看NTN:SSB波束数量少,用户体验真的会差吗?

当SpaceX的Starlink以每月新增上百颗卫星的速度扩张其星座时,一个有趣的技术现象正在引发行业讨论:为何这个全球最大的低轨卫星网络选择使用相对较少的波束数量?波束数量的选择远非简单的技术参数,而是系统设计哲学、商业策略与终端用户体验的复杂平衡。传统地面网络可以依赖密集基站实现精准覆盖,而卫星通信必须面对一个根本性挑战:如何在数百公里的高空,用有限的射频资源服务广阔的地理区域。当我们在撒哈拉沙漠测试不同波束方案时,发现了一个关键洞见:最佳波束数量不是固定的技术参数,而是随网络发展阶段变化的动态值。

weixin_32308101的博客 335

Velocity入门到精通(上篇)

Velocity是一个基于Java的模板引擎,可以通过特定的语法获取在java对象的数据 , 填充到模板中,从而实现界面和java代码的分离!Velocity Template Language (VTL) , 是Velocity 中提供的一种模版语言 , 旨在提供最简单和最干净的方法来将动态内容合并到网页中。简单来说VTL可以将程序中的动态数展示到网页中注释非解析内容引用和指令。

我有一张床的博客 2万+

Webug4.0 打靶笔记

一、Webug 的安装 (1)基本信息 WeBug 名称定义为”我们的漏洞”靶场环境 ,基础环境是基于 PHP/mysql 制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。在 webug3.0 发布后的四百多天 226安全团队终于在大年初二发布了 webug 的 4.0 版本。 (2)虚拟机的安装 最新超详细VMware虚拟机下载与安装_隐

m0_60716947的博客 6128

SpringBoot-Velocity模板引擎-快速入门

宏(macro)可以定义可重用的代码块。相当于函数#end。

2301_81717523的博客 1925

电磁炉线圈加热仿真全流程:用Ansys Maxwell分析涡流效应与热损耗

本文详细介绍了使用Ansys Maxwell进行电磁炉线圈加热仿真的全流程。通过构建2D轴对称涡流场模型,深入分析了高频下的涡流效应、趋肤效应与热损耗分布,为优化线圈设计、提升加热效率与均匀性提供了量化依据和实用指南。

sss66的博客 971

基于拟蒙特卡洛模拟法的随机潮流计算matlab程序

由式(4-11)可知,蒙特卡洛模拟法的计算量不受电力系统规模大小影响,因此该方法在一些复杂的电力系统中可以得到应用,包括处理电力系统中有多个间歇性新能源接入的问题,解决系统中多个节点之间相关性问题等等。本章在此基础上提出了基于拟蒙特卡洛模拟的随机潮流计算方法,并且对拟蒙特卡洛法中的拟随机数序列进行了改进,大大提高了随机潮流的计算效率。模拟法的具体思路如下:基于实际工程问题的求解需要,建立与之相对应的随机模拟过程和随机概率模型,使得它们的参数,包括概率分布或者数学期望,能够等于问题的实际解;

weixin_47365903的博客 1798

页面引擎之velocity的基础入门学习

velocity的基础入门学习

weixin_53998054的博客 3531

基于Mind+、MOTT实现人工智能

@基于Mind+、MOTT实现人工智能 人工智能实验 一、实验目的及要求 【一】实现人脸识别 【二】实现云数据库应用 【三】实现测温数据mqtt上传至物联网云平台 二、实验原理与内容 基于二哈实现多人人脸学习和识别 基于TinywebDB实现云数据库应用 基于EasyIoT实现mqtt数据上传。 三、实验软硬件环境 硬件:掌控板 软件:Mind+ 四、实验过程(实验步骤、记录、数据、分析) 1.基于二哈实现多人人脸学习和识别 ①在Mind+扩展上的传感器选项选择HUSKYLENS AI 摄像头 ②配置哈士

weixin_44606930的博客 2379

若依框架-velocity_入门

模板对应的是界面设计,它是一种固定的文本结构。而数据模型对应的是业务逻辑,它是动态变化的数据。Velocity的作用就是:将数据模型和模板合并在一起,然后再输出到指定格式的文件中。

m0_74462339的博客 465

【DRAM存储器二】Sense Amplifier

详述DRAM颗粒中感应放大器功能、电路结构、工作原理和操作波形

highman110的博客 7206

CAPL编程规范与最佳实践

通过本文的学习,读者应该对CAPL编程规范与最佳实践有了初步的了解,并能够编写高质量的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1749

Velocity之入门实例

1 下载地址 http://velocity.apache.org/download.cgi 2 新建一个项目工程,引入velocity-xxx.jar和velocity-xxx-dep.jar 3 创建一个与WebContent同级的文件夹myvms 4 新增一个first.vm文件 <html> <head> <title&...

weixin_34297300的博客 105

【华为OD机试真题 新系统】1021、API请求日志去重分析 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1021、API请求日志去重分析 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备

KJ.JK 147

VTL (Velocity Template Language) 入门指南

VTL (Velocity Template Language) 入门指南 项目介绍 VTL 是Apache Velocity项目的核心部分,一个强大的模板引擎,用于处理和渲染文本内容。Velocity Template Language允许开发者以简洁的方式在HTML、XML、电子邮件或任何其他基于文本的文档中嵌入动态数据。它特别适合于Web应用程序中的视图层开发,提供了一个灵活且易于学习的语法...

gitblog_00935的博客 1429

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Velocity入门使用教程

Velocity入门使用教程 标签: Velocity 2015-08-17 09:45 1329人阅读 评论(0) 收藏 举报  分类: Velocity(1)      参考:百度文库:http://wenku.baidu.com/link?url=nddg_1OX-vYNVOC9OmkjVa3BrQvd8B29RqtY3En010-wev03AS

p312011150的博客 1262

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Velocity 入门

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。      当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务

你只管努力, 490

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Velocity入门系列

Velocity介绍   Velocity是一个java模板引擎,通过简洁的语法可以返回动态内容给浏览器使用,本系类是基于velocity官方文档(就是照着翻译,同时对不清楚的地方进行详细讲解),其实技术文档我一直推崇看官方文档,官方文档更新及时同时讲解也很详细,但是主要是需要英语基础哈哈,下面我们就开始velocity的学习了。 简单的环境搭建   在学习之前我们先下载jar包,...

dd922922的博客 245

java velocity入门_[Java教程]Velocity入门教程

[Java教程]Velocity入门教程0 2017-10-31 16:00:15 1.变量(1)变量的定义:1 #set($name = "hello") 说明:velocity中变量是弱类型的。 2 3 当使用#set 指令时,括在双引号中的字面字符串将解析和重新解释,如下所示: 4 5 #set($directoryRoot = "www" ) 6 7 #set($...

weixin_39901439的博客 335

java velocity入门_velocity 相关

Apache Velocity 是一个基于java的模板引擎(template engine)应用场景1.Web 应用:开发者在不使用 JSP 的情况下,可以用 Velocity 让 HTML 具有动态内容的特性2.源代码生成:Velocity 可以被用来生成 Java 代码、SQL语法概要1.在 Velocity 中所有的关键字都是以#开头的,而所有的变量则是以$开头。2.关系和逻操作符Velo...

weixin_35554226的博客 339
上一篇: 自订标签库--TagSupport详解
下一篇: Ext中的get、getDom、getCmp、getBody、getDoc的区别
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值