`
Java_大猫
  • 浏览: 172212 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

velocity spring 生成HTML

阅读更多
最近需要用到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> 


以上记录完毕。希望对大家能有所帮助
分享到:
评论

相关推荐

    SpringBoot Velocity 代码生成模板

    Spring Boot简化了Spring的初始化和配置过程,而Velocity则是一个强大的模板引擎,常用于生成动态内容。 1. **SpringBoot基础**: Spring Boot是基于Spring框架的微服务开发工具,它内置了Tomcat服务器,简化了...

    velocity spring jpa hibernate 整合

    在Web应用中,Velocity用于生成HTML页面,使得程序员可以专注于业务逻辑,而设计师则专注于页面设计。Velocity模板语言(VTL)简洁易用,通过$和#符号来调用变量和控制结构。 2. **Spring**:Spring是Java企业级...

    velocity生成静态页面实例

    然后,我们使用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的强大功能来处理业务逻辑,同时利用Velocity的简洁模板语法来设计前端页面,...

    spring+velocity+ibatis

    当用户请求到达时,Spring MVC控制器会调用业务服务层的方法,这些方法进一步通过iBATIS的SqlSession查询或更新数据库,然后将返回的数据传递给Velocity模板,由Velocity负责生成HTML响应给客户端。 文件名 ...

    spring mvc mybatis velocity 示范

    Controller将数据传递给Velocity模板,Velocity根据模板内容和传入的数据生成HTML,最后返回给客户端。 总结起来,Spring MVC提供了MVC模式的实现,MyBatis简化了数据库操作,Velocity则负责页面渲染。这三者结合,...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    在Spring MVC中,Velocity可以作为视图渲染引擎,将模型数据填充到模板中生成HTML响应。 **Maven**:Maven是一个项目管理和综合工具,它简化了构建、依赖管理和项目信息管理。通过定义Project Object Model (POM),...

    spring+velocity发送邮件

    Velocity是一个基于Java的模板引擎,它允许开发者通过简单的模板语言来生成HTML网页、XML数据或者普通的文本。在发送邮件时,我们可以通过Velocity来动态生成邮件内容,使得邮件内容可以根据不同的参数变化,从而...

    struts+spring+velocity

    Velocity会解析模板并生成静态HTML,这提高了网页的加载速度,因为不需要在每个请求时重新计算模板。 在"struts+spring+velocity"的组合中,Struts 通常作为前端控制器,负责接收和路由HTTP请求。Spring 提供了业务...

    简单学习使用Spring+Velocity发送邮件

    而Velocity则是Apache软件基金会的一个模板引擎,它允许开发者将动态内容嵌入到静态页面中,使得HTML或其他格式的文档可以更加便捷地生成。本教程将围绕如何使用Spring框架与Velocity模板引擎来实现邮件发送功能进行...

    itext加载velocity生成PDF

    `iText`是一个流行的Java库,专门用于创建和处理PDF文档,而`Velocity`则是一个强大的模板引擎,常用于动态生成HTML、XML等文本。将两者结合,我们可以利用`Velocity`的模板能力来动态生成PDF内容,这在SpringMVC...

    Velocity+Spring 2[1].0+Hibernate的Web应用开发框架

    ### Velocity+Spring 2.0+Hibernate 的 Web 应用开发框架 #### 一、引言 随着互联网技术的发展,Web 应用系统的复杂度不断提高,为了更好地组织和管理应用程序,MVC(Model-View-Controller)架构逐渐成为主流。在...

    Struts2+Spring+Velocity项目

    - `*.vm`:Velocity模板文件,用于生成HTML页面。 - `*.java`:Action类、Service类、DAO类等,实现了业务逻辑和数据访问。 整合这三个框架可以构建出一个高效的企业级应用,使开发者能够专注于业务逻辑,而不是...

    velocity 入门文档及应用源码,很适合做自动代码生成

    手册中会详细介绍Velocity上下文(Context)、模板(Templates)、模板语言(Template Language)等核心概念,还有Velocity Engine的配置、宏库(Macro Library)的使用,以及与其他Java库如Spring的集成等高级主题。...

    spring velocity demo

    这些类帮助Spring在处理HTTP请求时,将模型数据绑定到Velocity模板,生成相应的HTML响应。通过Spring的视图解析器,可以轻松地管理多个Velocity模板目录,提高应用的灵活性。 4. **Eclipse IDE**:Eclipse是一种...

    maven搭建spring mvc velocity+mybatis

    4. 创建Velocity模板文件,用于生成HTML页面,将模型数据传递给模板。 5. 编写Controller,处理HTTP请求,调用Service层的方法,获取数据,并将结果传递给Velocity模板。 6. 配置Web服务器,例如Tomcat,部署项目。 ...

    92.Spring Boot使用模板velocity【从零开始学Spring Boot】

    而Velocity作为一款轻量级的模板引擎,能够帮助我们快速生成动态HTML页面,极大地提高了前端展示的灵活性。本文将深入探讨如何在Spring Boot项目中集成并使用Velocity模板引擎。 首先,我们需要理解Spring Boot与...

    struts2+spring+velocity扩展实例V1版本

    在Struts2和Spring的组合中,Velocity作为视图层的技术,可以接收来自控制器的数据,并生成动态的HTML页面。实例中可能包含多个Velocity模板文件,展示了如何通过Velocity模板语言来动态生成页面内容。 在这个扩展...

    spring-velocity-support-2.3

    在Spring应用中,这些模板会被解析并结合模型数据生成HTML或其他格式的响应。 3. **依赖注入(DI)与Velocity**: Spring的DI特性可以用来管理Velocity模板中的对象,例如设置 Velocity Context 中的变量,使得模板...

Global site tag (gtag.js) - Google Analytics