简单Velocity实践

Velocity是一种模板语言,它的作用、好处等可以找到很多资料,下面我们分二次来进行简单实践,第一部份是hello world 。看我做完这个实验,你就知道,初步上手其实是一件简单的事情:)

1、 建立模板文件 hello.vm,简单些,全文如下:

Hello, $name

2、 建立Class文件:

import java.io.BufferedWriter;

import java.io.OutputStreamWriter;

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

import org.apache.velocity.Template;

import org.apache.velocity.VelocityContext;

import org.apache.velocity.app.Velocity;

public class HelloVelocity {

public static void main(String[] args) throws Exception {

Velocity.init();

VelocityContext context = new VelocityContext();

context.put("name", "yy");

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

Template template = Velocity.getTemplate("hello.vm");

template.merge(context, writer);

writer.flush();

writer.close();

}

}

让Class文件运行起来,注意把vm文件放在工作目录下,看看,输出是不是 hello,yy J

过程是这样的:初始化 – 获取context – context 输出对像给值 – 获取模板文件 – 写模板文件 – 关闭资源

到这里半懂不懂的吧,没关系,我们毕竟让它跑起来了,接着来第二次实验。

(关键字:Java, JSP, Servlet, template, 模板, Apache, Jakarta, Velocity)

这一实验中我们让Velocity在web 应用中和Struts结合起来,让struts 的forward 转向*.vm文件.。

我们必须先down 到 velocity-tools 工具,如下地址:http://jakarta.apache.org/velocity/tools/

为和struts结合起来,我们要做这么4步的工作:

1、 VelocityStruts 和 VelocityView 这二个工具必须加到项目中,也就是把你的velocity-tools-1.1.jar 和velocity-1.4.jar 都放到项目的Lib 中

2、 在web.xml 中添加 VelocityViewServlet ,它是vm 文件的引擎

<servlet-name>velocity</servlet-name> <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet

</servlet-class>

<servlet-mapping>

<servlet-name>velocity</servlet-name>

<url-pattern>*.vm</url-pattern>

</servlet-mapping>

也就是以上这么二部份。

3、 添加Velocity.properties (这一步不是必须的)

4、 添加toolbox.xml (这一步不是必须的)

如果加了后二步,则web.xml 文件里要加上

<init-param>

<param-name>org.apache.velocity.toolbox</param-name>

<param-value>/WEB-INF/toolbox.xml</param-value>

</init-param>

<init-param>

<param-name>org.apache.velocity.properties</param-name>

<param-value>/WEB-INF/velocity.properties</param-value>

</init-param>

<load-on-startup>10</load-on-startup>

好,下面开始我们的实验,建一个最基本的struts项目,提交title 和 content ,这些不必多说了,注意forward指向.vm 文件

Action文件如下:

InfoForm infoForm = (InfoForm)form ;

HttpSession session = request.getSession() ;

session.setAttribute("title",infoForm.getTitle());

session.setAttribute("content",infoForm.getContent());

return(mapping.findForward("show"));

forward 在struts-config.xml 中说明如下:

<forward name="show" path="/show.vm"/>

Show.vm 文件全文如下:

$title

<br>

$content

<br>

Lets count : #foreach($i in [1..5])$i #end

除了显示session中的变量,又放了一个循环写数,可以看到简单的foreach

运行起来,看到效果了吗?是不是有点像用标签,当然它的功能还比较多,比较强大,用二个小时足以上手了吧,详细用的时候,再查手册,一定不是什么难事。

时间: 2024-10-24 18:09:17

简单Velocity实践的相关文章

求JAVA简单项目实践.

问题描述 本人刚把java基础和sql学完,对jdk的新特性也了解了,想实践一下,不知道是否有实际点的小项目可以做做. 或者接下来该看什么书,本人想往B/S那块发展.出个题,需求清楚点的.再给个详细的思路.问题补充: 我用的是eclipse,jsp页面用什么做比较好. 解决方案 你如果想向B/S方面发展的话,我看你做一个"网上书店"项目会收获很大.所涉及到的有:网站前台:图书展示,图书搜索,会员注册,会员登录,密码找回,会员个人信息管理,会员购物(购物车),下订单,网站留言.后台部分:

Spring框架讲解-一个简单的实践

一,场景:编写一个用户管理的服务层,包括增加用户.删除用户和查询用户等等,而且用户信息以关系型数据库形式存储.分析:这是一个典型的应用服务,涉及到业务层(Business Objects Layer).数据库访问层(DB Access)和存储层(EIS).采用典型的架构:BO+DAODAO采用Spring提供的JdbcTemplate来进行封装. 二,具体实现 1)用户类Userpublic class User{          private String username;       

Caddy网页服务器简单部署实践

Caddy Server是一个用golang写的优秀web server,国内用户相对偏少,但我非常喜欢这个东西,所以来做个简易的手册. 它有许多nginx和apache没有的功能,不仅具有特色而且非常实用,比如简洁的conf,http/2,markdown渲染等等 要说它的缺点,就是效率不如前两者. 本文会以下几块方面来介绍此服务器 caddy安装及配置文件基本写法 基本组成模块 传统php+mysql建站 caddy特色markdown建站 反向代理引入更多后端系统 1:Caddy的安装及配

符号执行:利用Angr进行简单CTF逆向分析

一.符号执行概括 简单的来说,符号执行就是在运行程序时,用符号来替代真实值.符号执行相较于真实值执行的优点在于,当使用真实值执行程序时,我们能够遍历的程序路径只有一条,而使用符号进行执行时,由于符号是可变的,我们就可以利用这一特性,尽可能的将程序的每一条路径遍历,这样的话,必定存在至少一条能够输出正确结果的分支,每一条分支的结果都可以表示为一个离散关系式,使用约束求解引擎即可分析出正确结果,这就是符号执行的简单阐述. Angr是一个利用python开发的二进制程序分析框架,我们可以利用这个工具尝

HDFS简介及用C语言访问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,如何存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有非常广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分

来咯-java难学吗请各位回答一下

问题描述 java难学吗请各位回答一下 监控哦哦魔女突然如泣如诉兔兔天助自助者兔兔喔喔喔喔喔喔喔哦 图我也在学习我摸摸我也在学习 解决方案 易学难精,书本上学的都是基础中的基础,只有在项目实战中才能学到真东西. 解决方案二: java很简单的啊 无非就是if else 类调来调去 解决方案三: 相对于其他语言,Java是很好学的.需要的就是大量的练习! 解决方案四: 入门简单,实践出真知 解决方案五: 很好学,建议你看视频学,有不会的也不要纠结,先把视频看完,然后做项目 解决方案六: 入门之后什

网站建设:提高网站访问量的策略

本文将详细论述如何做好一个网站,以及提高网站访问量的策略等等,供广大站长参考. 第1章. 前言 + 提高网站访问量是一个长期的工作. + 提高网站访问量需要针对某个具体的访问群体. + 提高网站访问量需要毫不停顿的改善网站. 为了加深对本篇文章的认识,本人以vjob网站为例并以网易免费统计来阐述. 第2章. 评估现时的访问量 (一)我们必须评估现在的访问量,对月.周.日.小时.综合访问统计.综合排名进行分析. 1.现时的访问量 2.一般的月访问统计的数据 3.一般的小时访问统计的数据 4.一般的

对极限编程四个核心的理解(一)

编程 极限编程的核心有四个,交流.简单.反馈和勇气,这四个原则大家在平时做项目的过程中一定也注意到了.但是两位大师Kent Beck 和 Martin Fowler能够把这四点归结在一起,使他们能够共同组成极限编程这架四轮马车,却是一个不小的创造的. 下面仅就自己的学习和简单的实践过程中遇到的问题来谈谈自己对这四个核心的一些理解. 一.交流 1)       开发人员与客户的交流 这一点与传统的软件工程中有些类似,在平时开发软件的过程中也非常注重与客户的交流,特别是在需求分析.概要设计以及验收测

从一个项目谈XP在国内的应用

项目 目前国内对于XP方面的研究和应用此起彼伏,各种关于XP的书籍争相出版,对于以XP为代表的"敏捷软件工程"方法的争论也在网络上随处可见.之所以出现这样的情况,是因为国内的用户在软件项目的实施过程中遇到了很多问题,例如项目的交付时间推迟.用户需求变更频繁等,我们的软件工程师迫切的希望能够找到解决问题的"银弹".对于高度动态.通过非常短的迭代周期来应对需求变化的极限编程方法论来讲,确实能够从一定程度上解决问题.但是,对于国内的软件开发项目来说,XP并非"银