`

Velocity + Spring定时器 生成静态页面

 
阅读更多
最近做项目需要将首页静态化,于是着手了下velocity,成功将首页静态化。
首先需要下载 velocity-dep.jar 在附件中我上传了

velocity需要配置如下
velocity.property
日志生成路径
runtime.log = velocity.log
乱码解决
input.encoding=GBK
output.encoding=GBK
指定vm模板路径 绝对所在路径(如我的vm模板放在src下 编译后就在一下目录了)
file.resource.loader.path = X://workspace//test//web//WEB-INF//classes


spring定时器
public class ToHTMLServiceImp implements ToHTMLService{
// 稿件点击排行
private List articlelist = new ArrayList();
public void toHtml() {
//执行查询的方法
articlelist =  查询方法list
//使用vm模板静态化
读取配置文件
VelocityEngine   ve   =   new   VelocityEngine();
ve.init("X:\\workspace\\test\\src\\velocity.properties"); 
VelocityContext context = new VelocityContext();
//路径跟前面设置的path相对应 
Template template = ve.getTemplate("mytemplate.vm");
//将获得的对象放入Velocity的环境上下文中方便取用
context.put("articleListMap", articleListMap);
//将模板生成到指定位置 我生成的名字叫home.html
File savefile = new File("X:\\workspace\\test\\web\\site\\home\\home.html"); 
if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs(); 

FileOutputStream outstream = new FileOutputStream(savefile); 

OutputStreamWriter writer = new OutputStreamWriter(outstream,"GBK"); 

BufferedWriter bufferWriter = new BufferedWriter(writer); 

template.merge(context, bufferWriter); 

 bufferWriter.flush(); 

outstream.close(); 

 bufferWriter.close(); 
}catch( Exception e ){ 

		    e.printStackTrace(); 

} 
}


jsp页面包含html
<body>
<%@include file="home_head.jsp" %>
<!--生成的静态页面 使用jsp动态标签 加入 如编码一致 基本不会出现乱码的情况 -->
<jsp:include page="home.html"></jsp:include>
<%@include file="home_foot.jsp" %>
</body>

spring定时器相关配置
<bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="timeTask"/>
</list>
</property>
</bean>

<bean id="home.ToHTML" class="zgzy.site.timer.Home2HtmlTimer" singleton="true">
</bean>

<bean id="methodInvokingTask" class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
<property name="targetObject"><ref bean="home.ToHTML"/></property>
<property name="targetMethod"><value>toHtml</value></property>
</bean>

<bean id="timeTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask"><ref bean="methodInvokingTask"/></property>
<property name="delay"><value>0</value></property>
<!-- 我设的是 十分钟一次 -->
<property name="period"><value>600000</value></property>
</bean>

  <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/config/site/site-time-task.xml</param-value>
  </context-param>
  <listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
vm标签语法 我贴几个我为了方便贴在记事本里的草稿 应该很容易理解 所以不解释了:)
$element.sid
#set ($i=0)
#foreach($element in $pictureList)
#set($i=$i+1)
$element.getStringFormat($element.name,22)
$element.fileDate
#foreach($element in $articleListMap.get("test"))
#foreach($element in $zhuantiList) 
#if($velocityCount < 4)
#end
$element.getStringDate($element.fileDate,5,10)



  • 大小: 46.5 KB
  • 大小: 49.5 KB
  • 大小: 52.5 KB
  • 大小: 70.3 KB
  • 大小: 72.1 KB
  • 大小: 70.6 KB
分享到:
评论

相关推荐

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

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

    struts + spring + hibernate + velocity + ajax + jotm + acegi

    struts + spring + hibernate + velocity + ajax + jotm + acegi

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    **Velocity**:Velocity是一个基于Java的模板引擎,用于生成静态网页或动态内容。与JSP相比,Velocity更专注于模板语言,其语法简洁且易于理解。在Spring MVC中,Velocity可以作为视图渲染引擎,将模型数据填充到...

    maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建

    本项目框架“maven+springMVC+mybatis+velocity+mysql+junit”提供了一种高效、灵活且可维护的解决方案。以下将详细讲解这些组件及其作用。 1. Maven: Maven是一个项目管理工具,用于构建、依赖管理和项目信息...

    maven+springmvc+spring+ibatis+velocity+mysql

    在构建企业级Web应用时,"maven+springmvc+spring+ibatis+velocity+mysql"这个组合提供了高效且灵活的开发框架。让我们逐一解析这些技术及其在项目中的作用。 **Maven** 是一个项目管理和综合工具,它帮助开发者...

    velocity+springmvc+spring+mybaits 整合项目 用户管理

    velocity+springmvc+spring+mybaitsg整合案例 用户管理 带sql ,亲自整合调试,没有问题! /* SQLyog Ultimate v8.32 MySQL - 5.6.19 : Database - test ******************************************************...

    struts+spring+velocity

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

    struts2.2+velocity+tiles+spring3+mybatis3.05整合

    总之,"struts2.2+velocity+tiles+spring3+mybatis3.05整合"实例展示了Java Web开发中的典型技术栈集成,为开发者提供了高效、稳定的开发环境,有助于提升项目开发的速度和质量。通过学习和实践这个实例,开发者可以...

    Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建源码

    这是我写的一个Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建完整项目,里面包含了所需的全部JAR包已经相关源码,感兴趣的同学可以下载喽。。。 配合我的博客更好哦!

    velocity+ibatis+wework+spring的demo

    【Velocity+iBatis+WeWork+Spring Demo详解】 这篇文档将深入探讨一个结合了Velocity模板引擎、iBatis持久层框架、WeWork企业协作工具和Spring框架的示例项目。这个项目对于初学者理解这四个组件如何协同工作,以及...

    Maven + Spring mvc + Mybatis + Velocity +国际化配置 demo

    在这个项目中,Velocity与Spring MVC配合,用于生成基于用户请求的动态页面。 5. 国际化配置:国际化的实现通常涉及到资源文件(如`messages.properties`)的创建,这些文件包含了不同语言环境下的文本信息。在...

    maven+springMVC+mybatis+velocity+mysql+junit 代码生成器

    【标题】"maven+springMVC+mybatis+velocity+mysql+junit 代码生成器" 描述了一个集成开发环境,这个环境结合了多种技术,旨在帮助开发者快速、高效地生成应用程序的基础代码。以下是这些技术及其相关知识点的详细...

    Velocity+Spring+Ibatis框架搭建说明文档1

    2. **新建工程**:使用 Myeclipse 创建一个新的 Web 工程,命名为 `SVI`,然后导入所需 jar 包,这些包应包括 Velocity、Spring 和 Ibatis 的相关依赖。 3. **配置 ibatis**:配置 `ibatis` 主要涉及到 `mybatis-...

    spring+velocity+ibatis

    标题 "spring+velocity+ibatis" 暗示了这个项目是基于Spring框架,结合Velocity模板引擎和iBATIS持久层框架构建的一个Web应用程序。这三个技术的整合为开发者提供了高效、灵活的后端架构。 Spring框架是Java企业级...

    基于MybatisPlus+Velocity+Layui+SpringBoot的生成前端和后端CRUD的脚手架

    【标题】"基于MybatisPlus+Velocity+Layui+SpringBoot的生成前端和后端CRUD的脚手架"是一种高效开发框架,它整合了多个技术组件,旨在简化Web应用的开发流程,特别是对于数据操作和用户界面的快速构建。这个脚手架...

    velocity生成静态页面实例

    在“velocity生成静态页面实例”中,我们首先需要一个 Velocity模板文件(通常以`.vm`为扩展名),在这个文件中,我们可以使用Velocity语法来定义页面结构,并插入动态数据占位符。例如,我们可以写一个简单的模板:...

    Velocity+Struts 配置

    Velocity 是一个基于Java的模版引擎。它允许web 页面设计者引用JAVA代码预定义的方法。Web 设计者可以根据MVC模式和JAVA程序员并行工作...Velocity+Turbine 方案提供的模板服务将允许web 应用按真正的mvc模式进行开发。

    Velocity+Struts生成html

    当模板与后端的数据源(如Java对象)结合时,Velocity会根据模板和数据生成最终的HTML页面,这样既保持了视图的简洁,又实现了动态内容的生成。 ### Struts 框架 Struts是基于Servlet和JSP的MVC框架,它提供了一种...

Global site tag (gtag.js) - Google Analytics