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. HIbernate实体类注解配置

    一.类级别注解 1.@Entity(name="EntityName") 必须 name为可选,对应数据库中一的个表 2.@Table(name="",cata ...

  2. Chrome控制台选择器简介

    Chrome的控制台是支持用$来获取元素的,这点可能是很多人不知道的.本篇文章将会简单介绍怎样更好的来使用这种快捷方式来获取元素. 判断当前窗口的$是来自谁的 我们知道jQ里面经常使用$来进行元素选择 ...

  3. java 对象的序列化与反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

  4. SQLServer总结

    基础 nvarchar 和 varchar等的区别 1.nvarchar多了一个N,n表示使用的unicode编码,不用N开头的是用的utf-8编码. 2.所以中文在varchar中占两个字符长度,在 ...

  5. vue.js项目构建

    这里构建的vue.js项目依赖node服务器运行. 项目搭建完整步骤: 安装node.js ,转至nodeJs网站http://nodejs.cn/ 下载nodeJs进行安装. 安装完毕检查nodeJ ...

  6. hibernate学习手记(1)

    1. java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more ...

  7. Java虚拟机-运行时数据区域

    Java虚拟机管理的内存包括如图所示的运行时数据区域: 下面分别进行介绍: 1)程序计数器(Program Counter Register) 占用的内存空间比较小,主要作用就是标识当前线程执行的字节 ...

  8. vue实例讲解之vue-router的使用

    实例讲解系列之vue-router的使用 先总结一下vue-router使用的基本框架: 1.安装并且引入vue-router 安装:npm install vue-router --save-dev ...

  9. ASP.NET没有魔法——目录

    ASP.NET没有魔法——开篇-用VS创建一个ASP.NET Web程序 ASP.NET没有魔法——为什么使用ASP.NET ASP.NET没有魔法——第一个ASP.NET应用<MyBlog&g ...

  10. Centos7虚拟机桥接模式

    主机ping不通虚拟机centos7系统的ip大多有以下原因: 1.主机与centos7ip段对应 (关键是网关.dns服务器要一一对应,具体操作见后文) 2.对应后仍然不通的,可关闭主机与cenos ...