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. jpa 多对多关系的实现注解形式

    1, 表结构 1)设备表 VTM_DEVICE_INFO create table VTM_DEVICE_INFO ( ID INTEGER not null, SN ) not null, STAT ...

  2. 关于linux下的文件权限

    在ls指令加 -l 参数能看到文件权限 就像这样: drwxrwxr-x 2 asml users 4096 Jul 24 02:45 desktop 第一个d表示这是个目录,若为"-&qu ...

  3. mysql 安装-zip版

    1.千万不要自己新建data,使用命令:mysqld --initialize会自动生成一大堆文件 2.没有ini文件就自己新建:

  4. Web 项目更改项目名

    简单的记录web开发中基本的操作. 更改项目名 直接修改 找到原项目中的.project 文件,更改中项目名称.然后在同目录下找到.mymetadata 文件 并更改name.context-root ...

  5. java程序员该工作还是游戏?

    前阵子我终于下定决心,删掉了硬盘里所有的游戏. 身为一个程序猿,每天都要和各种新技术打交道,闲暇时间,总还得看一下各大论坛,逛逛博客园啥的,给自己充充电.游戏的话,其实我自小就比较喜欢,可以算是一种兴 ...

  6. 【个人笔记】《知了堂》MySQL中的数据类型

    MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) ...

  7. 初识Hibernate之环境搭建

         相信所有做后端的程序员同行们,没有不知道Hibernate大名的.这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思维操作传统的关系型数据库,这也是其存在的 ...

  8. 在Storyboard中为UITableView添加Header和Footer

    我在这里所说的Header和Footer并不是sectionHeader和sectionFooter,而是指UITableView的tableHeaderView和tableFooterView,这两 ...

  9. hdu2222 ac自动机入门

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  10. java数据库编程之DAO模式

    第八章:DAO模式 8.1:JDBC封装 为了提高代码的维护性和扩展性,我们使用JDBC进行封装数据, 先定义统一的API,将操作数据的代码抽象到接口中,业务逻辑代码只需要调用这些接口的实现类的对象, ...