velocity的基本使用要求:掌握jsp的jstl技术,因为velocity的用法和jstl非常相似。语法上差别不大,但是velocity的示例明显比jstl少,解释也少,所以使用velocity必须熟练掌握jsp的jstl技术,否则velocity用起来不是那么顺手。

学习velocity之前,务必学习jstl。

velocity的基本使用:

  目录:

其中需要引入的lib里面的jar包,自行百度,这里不做阐述。

具体配置如下:

  首先写web.xml文件,这个是java web项目都必须准备的东西,不可缺少:

  

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>VoTest</display-name>
<welcome-file-list>
<welcome-file>hello.html</welcome-file>
</welcome-file-list>
<!-- Velocity 的配置文件 --> <servlet>
<servlet-name>Hello</servlet-name> <!-- 这个servlet-name要和下面那个servlet-name相同,但不一定和class相同 -->
<servlet-class>com.dodou.tool.Hello</servlet-class> <!-- 如果你有包名就是com.dodou.tool.Hello -->
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value> <!-- velocity配置文件 -->
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello.html</url-pattern> <!-- 当你访问hello.html时就运行Hello.java这个类,所以你可以改成其它文件即可 -->
</servlet-mapping> </web-app>

然后是velocity.properties  这个文件只是防止乱码而已

input.encoding=utf-8
output.encoding=utf-8
default.contenttype=text/html;charset\=utf-8

编写基本的demo的类文件,这个文件为了方便,取名为Hello.java,文件内容如下:

package com.dodou.tool;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.view.VelocityViewServlet; public class Hello extends VelocityViewServlet { private static final long serialVersionUID = 1L; protected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx) {
ctx.put("var","汪政");//给$var变量赋值为"汪政"
ctx.put("var2", "给你讲个笑话");
// map的操作,前台取出
Map<String,String> paramValues=new HashMap<String, String>();
paramValues.put("1", "汪政01");
paramValues.put("2", "汪政02");
paramValues.put("3", "汪政03");
paramValues.put("4", "汪政04");
paramValues.put("5", "汪政05");
request.setAttribute("pv", paramValues);
// list操作,前台取出
List list = new ArrayList();
list.add("汪政01");
list.add("汪政02");
list.add("汪政03");
ctx.put("list",list); return getTemplate("hello.html");//模板名称
}
}

最后一个是hello.html文件,这个文件的后缀不一定是html   使用vm也行,但是需要在配置类里面进行改变,一定要对应,没有任何原因

示例代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>VoTest</title>
</head>
<body>
<!-- 这里是前端看不到的内容,注释使用## -->
##这里是注释,前端页面看不到的
<!-- 测试Hello类里面设置的值的传递 -->
<h1>Hello, $var</h1> <!-- 自定义变量的运算(赋值) -->
<h1>
#set($name ="汪政")
#set($hello ="Hello, $name")
$hello
</h1> <!-- 感叹号用来强制把不存在的变量显示为空白,var2已在Hello类文件中赋值 -->
<h1>$!var2</h1> <!-- 静态引用标识符(正式应用和静态引用经常一起使用) -->
<h1>
示例1:<input type="text" name="email" value="$!email" />
示例2:<input type="text" name="email" value="$!{email}" />
</h1> <!-- 表格逻辑显示(表格模版的宏的写法) -->
#macro(tablerows $color $somelist)
#foreach($something in $somelist)
<tr>
<td bgcolor=$color>$something</td>
</tr>
#end
#end #set($greatlakes =["汪政01","汪政02","汪政03","汪政04","汪政05"])
#set($color="red")
<table>
#tablerows($color $greatlakes)
</table> <!-- 模版中的map使用foreach循环的操作(Hello类中的map,这里取出,常用写法) -->
<table style="border:1px solid #F00;text-align: center;">
<tr>
<th>编号</th>
<th>姓名</th>
</tr>
#foreach($info in $pv.entrySet())
<tr>
<td>$info.key</td>
<td>$info.value<td>
</tr>
#end
</table> <!-- 模版中的list使用foreach循环的操作(Hello类中的map,这里取出,常用写法) -->
<ui>
#foreach($index in $list)
<li>$index</li>
#end
</ui>
<!--
注:①map和list中的是两种写法,可以换用的,根据情况,这里只是循环,具体情况根据值来决定,怎么决定请百度:java基础---map和list
②除宏操作外,以上写法和后台的对应处理,请参照JSTL的写法和用法
-->
</body>
</html>

在使用velocity请学习或者预习jstl标签的语法,基本上是差不多的,这点要注意。

demo的下载地址如下:(里面包含了lib的jar包,全部都是最新的)

点击下载

https://share.weiyun.com/55594809b57c67075175c74aa4a9b5a2

velocity的基础使用的更多相关文章

  1. web基础----->模板引擎Velocity的使用(二)

    这里面是关于velocity的一些用法,比较基础的使用.愿你生命中有够多的云翳,来造成一个美丽的黄昏. velocity生成javaBean 一.定义一个简单的bean类 public class C ...

  2. velocity基础教程--1.标准使用(zhuan)

    http://llying.iteye.com/blog/387253 **************************** velocity是一个非常好用的模板引擎 这里不对项目进行详细介绍,可 ...

  3. web基础----->模板引擎Velocity的使用(一)

    Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上.今天我们就学习一下Velocity的用法. Velocity的第一个例子 项目的主体是 ...

  4. [JavaWeb基础] 020.Velocity 模板引擎简单示例

    1.什么是Velocity 一种J2EE的前端模版技术,和JSP,Freemarker差不多,都是用来展示网页内容的.和JSP不同的是velocity只能显示Action中的数据,不能处理数据.不能写 ...

  5. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  6. Struts2框架基础

    Struts2框架基础 1.Java的框架 1.1.框架简介 在大型项目开发过程中,经常会使用到一些框架,这样做好的好处是能够提高工作效率,在java中最常用的的框架就是SSH,这其实是三个框架的简称 ...

  7. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  8. 记录一次bug解决过程:velocity中获取url中的参数

    一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-si ...

  9. Velocity语言的介绍

    Velocity语言的介绍 2016-09-06 15:39:25 语言介绍 Velocity是一种Java模版引擎技术,是一个基于Java的模板引擎(template engine).她允许任何人简 ...

随机推荐

  1. python入门之一python安装及程序运行

    Python 程序要运行,需要先安装python解释器 PVM(这里可对照java的JVM来理解)实际上,你不需要单独安装,直接安装python后就可以了 1.安装python 下载地址:http:/ ...

  2. C++临时对象以及针对其进行的优化

    C++临时对象以及针对其进行的优化 C++中真正的临时对象是看不见的,它们不出现在你的源代码中. 那么什么时候回产生临时对象呢?主要是三个时刻: 产生临时对象的三个时刻: 用构造函数作为隐式类型转换函 ...

  3. [android游戏开发初学]SurfaceView初探之缓冲区测试

    先上测试代码 private static class PathView extends SurfaceView implements SurfaceHolder.Callback{ private ...

  4. 线段树初步__ZERO__.

    线段树,顾名思义,就是指一个个线段组成的树. 线段树的定义就是: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点.使用线段树可以快速的查找某 ...

  5. Permutations 好题

    Permutations Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Subm ...

  6. hdu2157矩阵快速幂

    How many ways?? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. 关于Java里面File类创建txt文件重复???

    private JButton getOpenButton() { if (openButton == null) { openButton = new JButton(); openButton.s ...

  8. 21.Linux-写USB键盘驱动(详解)

    本节目的: 根据上节写的USB鼠标驱动,来依葫芦画瓢写出键盘驱动 1.首先我们通过上节的代码中修改,来打印下键盘驱动的数据到底是怎样的 先来回忆下,我们之前写的鼠标驱动的id_table是这样: 所以 ...

  9. windows下Maven的安装与配置

    1 安装maven前首先确认计算机已正确安装JDK2 下载maven 地址:http://maven.apache.org/download.html安装文件格式如下:apache-maven-3.0 ...

  10. 语音识别完成诗句的查询功能,iOS AVSpeechSynthesis语音输出结果的诗歌APP

    前言 当前的APP的查询都是使用手动输入,不仅效率低,而且查询的语句的限制比较大,不能够方便的扩展. 如果能方便的扩展查询语句,那么APP的使用就会有很大的灵活性.可以设计各种问句和语句,可以方便的和 ...