最近需要用到veloctiy 做模版 生成HTML 于是乎就简单研究了下。时间如流水。长期不用容易忘。简单记录下用法。
首先是spring 的配置方面:
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<value>
input.encoding=UTF-8
output.encoding=UTF-8
resource.loader = ds
ds.resource.loader.public.name = String Template
ds.resource.loader.description = Velocity String Template Resource Loader
ds.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
ds.resource.loader.cache = false
ds.resource.loader.modificationCheckInterval = 60
velocimacro.library=
</value>
</property>
</bean>
PS:ClasspathResourceLoader 加载class 下的vm 模版
接下来看 spring mvc 的controller了部分
这里我做了一个生成分页,需要先计算一共有多少页 然后 根据pageNo 去取数据
/**
* 获得数据总条数
*/
int totalCount = categoryService.getVmListCount();
//获取总页数
PageAjax<Category> page = new PageAjax<Category>(totalCount);
int totalPage = page.getTotalPages();
//生成HTML 通过总页数判断生成几个HTML
Template velocity_template =velocityEngine.getTemplate("vmtem/pageList.vm","utf-8");
for(int pageNo=1;pageNo<=totalPage;pageNo++){
VelocityContext context = new VelocityContext();
PageAjax<Category> list = categoryService.getvmForList(pageNo, totalCount);
context.put("list", list);
FileOutputStream fos = new FileOutputStream("d:\\test\\pageList"+pageNo+".html");
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
fos, "UTF-8"));//设置写入的文件编码,解决中文问题
velocity_template.merge(context, writer);
writer.close();
//sevice 的部分代码
public PageAjax<Category> getCategoryAllForList(int pageNo,int pageSize){
int totalCount = categoryServiceMapper.getCategoryForListCount();
PageAjax<Category> page = new PageAjax<Category>(totalCount, pageNo,pageSize);
Map<String,Object> params = new HashMap<String,Object>();
params.put("start", (pageNo-1)*pageSize);
params.put("end", pageSize);
page.setResult(categoryServiceMapper.getCategoryForList(params));
return page;
}
接下来看下VM 的模版
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Course List</title>
</head>
<body>
<h2>COURSE LIST</h2>
<table border="1" style="margin-left: 100px" >
<tr>
<th class="jobs-time">序号</th>
<th class="jobs-title">产品名称</th>
<th class="jobs-title">createTime</th>
<th class="jobs-title">createUser</th>
<th class="jobs-title">操作-------${list.totalPages}</th>
</tr>
#foreach($course in ${list.result})
<tr>
<td width="13%" align="center">
${course.categroyId}
</td>
<td>${course.name}</td>
<td>${course.createTime}</td>
<td>${course.createUser}</td>
<td width="20%" align="center">
<a href="#" class="btn">详细</a>|<a href="#" class="btn">删除</a>
</td>
</tr>
#end
</table>
<div class="page_list">
<div class="list_info">
#if (${list.firstPage} == false)
<a title="首页" href="pageList1.html">首页</a>
<a title="上一页" href="pageList${list.prePage}.html">上一页</a>
#end
#foreach($page in ${list.slider})
#if ($page == ${list.pageNo})
<span class="current">
<em>${page}</em>
</span>
#else
<a href="pageList${page}.html">${page}</a>
#end
#end
#if (${list.lastPage} == false)
<a title="下一页" href="pageList${list.nextPage}.html">下一页</a>
<a title="最后一页" href="pageList${list.totalPages}.html">最后一页</a>
#end
<br>
</div>
</div>
</body>
</html>
以上记录完毕。希望对大家能有所帮助
分享到:
相关推荐
Spring Boot简化了Spring的初始化和配置过程,而Velocity则是一个强大的模板引擎,常用于生成动态内容。 1. **SpringBoot基础**: Spring Boot是基于Spring框架的微服务开发工具,它内置了Tomcat服务器,简化了...
在Web应用中,Velocity用于生成HTML页面,使得程序员可以专注于业务逻辑,而设计师则专注于页面设计。Velocity模板语言(VTL)简洁易用,通过$和#符号来调用变量和控制结构。 2. **Spring**:Spring是Java企业级...
然后,我们使用Velocity引擎来渲染模板并生成HTML: ```java VelocityEngine engine = new VelocityEngine(); engine.init(); StringWriter writer = new StringWriter(); engine.evaluate(context, writer, ...
这表明Spring MVC已经成功地与Velocity整合,动态生成了页面内容。 总的来说,Spring MVC与Velocity的整合使得开发者可以利用Spring MVC的强大功能来处理业务逻辑,同时利用Velocity的简洁模板语法来设计前端页面,...
当用户请求到达时,Spring MVC控制器会调用业务服务层的方法,这些方法进一步通过iBATIS的SqlSession查询或更新数据库,然后将返回的数据传递给Velocity模板,由Velocity负责生成HTML响应给客户端。 文件名 ...
Controller将数据传递给Velocity模板,Velocity根据模板内容和传入的数据生成HTML,最后返回给客户端。 总结起来,Spring MVC提供了MVC模式的实现,MyBatis简化了数据库操作,Velocity则负责页面渲染。这三者结合,...
在Spring MVC中,Velocity可以作为视图渲染引擎,将模型数据填充到模板中生成HTML响应。 **Maven**:Maven是一个项目管理和综合工具,它简化了构建、依赖管理和项目信息管理。通过定义Project Object Model (POM),...
Velocity是一个基于Java的模板引擎,它允许开发者通过简单的模板语言来生成HTML网页、XML数据或者普通的文本。在发送邮件时,我们可以通过Velocity来动态生成邮件内容,使得邮件内容可以根据不同的参数变化,从而...
Velocity会解析模板并生成静态HTML,这提高了网页的加载速度,因为不需要在每个请求时重新计算模板。 在"struts+spring+velocity"的组合中,Struts 通常作为前端控制器,负责接收和路由HTTP请求。Spring 提供了业务...
而Velocity则是Apache软件基金会的一个模板引擎,它允许开发者将动态内容嵌入到静态页面中,使得HTML或其他格式的文档可以更加便捷地生成。本教程将围绕如何使用Spring框架与Velocity模板引擎来实现邮件发送功能进行...
`iText`是一个流行的Java库,专门用于创建和处理PDF文档,而`Velocity`则是一个强大的模板引擎,常用于动态生成HTML、XML等文本。将两者结合,我们可以利用`Velocity`的模板能力来动态生成PDF内容,这在SpringMVC...
### Velocity+Spring 2.0+Hibernate 的 Web 应用开发框架 #### 一、引言 随着互联网技术的发展,Web 应用系统的复杂度不断提高,为了更好地组织和管理应用程序,MVC(Model-View-Controller)架构逐渐成为主流。在...
- `*.vm`:Velocity模板文件,用于生成HTML页面。 - `*.java`:Action类、Service类、DAO类等,实现了业务逻辑和数据访问。 整合这三个框架可以构建出一个高效的企业级应用,使开发者能够专注于业务逻辑,而不是...
手册中会详细介绍Velocity上下文(Context)、模板(Templates)、模板语言(Template Language)等核心概念,还有Velocity Engine的配置、宏库(Macro Library)的使用,以及与其他Java库如Spring的集成等高级主题。...
这些类帮助Spring在处理HTTP请求时,将模型数据绑定到Velocity模板,生成相应的HTML响应。通过Spring的视图解析器,可以轻松地管理多个Velocity模板目录,提高应用的灵活性。 4. **Eclipse IDE**:Eclipse是一种...
4. 创建Velocity模板文件,用于生成HTML页面,将模型数据传递给模板。 5. 编写Controller,处理HTTP请求,调用Service层的方法,获取数据,并将结果传递给Velocity模板。 6. 配置Web服务器,例如Tomcat,部署项目。 ...
而Velocity作为一款轻量级的模板引擎,能够帮助我们快速生成动态HTML页面,极大地提高了前端展示的灵活性。本文将深入探讨如何在Spring Boot项目中集成并使用Velocity模板引擎。 首先,我们需要理解Spring Boot与...
在Struts2和Spring的组合中,Velocity作为视图层的技术,可以接收来自控制器的数据,并生成动态的HTML页面。实例中可能包含多个Velocity模板文件,展示了如何通过Velocity模板语言来动态生成页面内容。 在这个扩展...
在Spring应用中,这些模板会被解析并结合模型数据生成HTML或其他格式的响应。 3. **依赖注入(DI)与Velocity**: Spring的DI特性可以用来管理Velocity模板中的对象,例如设置 Velocity Context 中的变量,使得模板...