最近需要用到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项目 自动生成数据表模板,包括:Mapper、Mapper.xml、Service、Controller、html 自定义模板生成
基于Spring Boot+Vue+Shiro实现的前后端分离的代码生成器项目源码,可根据数据库字段动态生成各种类型代码 该项目可根据数据库字段动态生成 controller、mapper、service、html、jsp、vue、php、.py ... 等各种类型...
表单输入生成宏 14.4.5.4. 重载HTML转码行为并使你的标签符合XHTML 14.5. XSLT 14.5.1. 写在段首 14.5.1.1. Bean 定义 14.5.1.2. 标准MVC控制器代码 14.5.1.3. 把模型数据转化为XML 14.5.1.4. 定义视图属性 14.5....
14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/...
14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/...
14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/...
14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/...
支持HTML,JSP,Velocity,Freemarker等视图,零技术门云 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求(如需控制到按钮等级,需使用Shiro标签,控制按钮的显示或隐藏) 页面互动使用Vue2.x,极大的...
J2ee开源模板后台是基于 springmvc+mybatis+easyui+velocity 技术实现的一套模板后台,把一些通用的功能模板化,可以在线打包生成整站源码包括 jsp页面,为开发人员节省时间 ,生成的功能有增删改查,查询包括按列...
word源码java 平台简介 一直想做一款可以偷懒的项目,看了很多优秀的开源项目发现都挺好,就是没定制的,譬如我既想生成的代码数据操作层 ...代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下
SpringMVC | MVC框架 | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc) ...
通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试代码的...
框架公共模块,提供相关共用工具类,以及代码生成器,基础配置参数,静态变量等,可**演变成公司专用工具类自行维护**。 > mi-blog [查看部署](https://github.com/MIYAOW/MI-S) 技术博客项目(使用HEXO主题模版,...
1、轻量级的权限系统,只涉及Spring、Shiro、Mybatis后端框架,降低学习使用成本2、友好的代码结构及注释,便于阅读及二次开发3、支持HTML、JSP、Velocity、Freemarker等视图,零技术门槛4、完善的代码生成机制,...
AutoEE-自动智能开发平台是一款使用当前主流框架搭建,并结合 Velocity 模板引擎和MyBatis Generator实现的高度可自定义、高度可配置的自动智能生成代码的开源的快速开发平台。 使用 AutoEE 开发平台可以简单、...
支持HTML、JSP、Velocity、Freemarker等视图,零技术门槛 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求 页面交互使用Vue2.x,极大的提高了开发效率 完善的代码生成机制,可在线生成entity、xml、dao...
支持HTML、JSP、Velocity、Freemarker等视图,零技术门槛 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求 页面交互使用Vue2.x,极大的提高了开发效率 完善的代码生成机制,可在线生成entity、xml、dao...
支持HTML、JSP、Velocity、Freemarker等视图,零技术门槛 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求 页面交互使用Vue2.x,极大的提高了开发效率 完善的代码生成机制,可在线生成entity、xml、dao...
支持HTML、JSP、Velocity、Freemarker等视图,零技术门槛 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求 页面交互使用Vue2.x,极大的提高了开发效率 完善的代码生成机制,可在线生成entity、xml、dao...
支持HTML、JSP、Velocity、Freemarker等视图,零技术门槛 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求 页面交互使用Vue2.x,极大的提高了开发效率 完善的代码生成机制,可在线生成entity、xml、dao...