Velocity模板(VM)语言介绍

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人 员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长 期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

Velocity现在应用非常广泛,现在尝试将SpringMVC项目与Velocity整合。

整合过程

采用以前整合的[SpringMVC项目]。
主要涉及改变的文件:
pom.xml(引入velocity的jar包)
spring-mvc.xml(视图配置,配置velocity)
velocity.properties(velocity配置文件)

(1)加入dependency

<!-- Velocity模板 -->
<dependency>  <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>velocity-tools</groupId> <artifactId>velocity-tools-generic</artifactId> <version>1.2</version> </dependency>

(2)视图配置

<!-- 视图模式配置,velocity配置文件-->
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath" value="/WEB-INF/views" /> <property name="configLocation" value="classpath:properties/velocity.properties" /> </bean> <!-- 配置后缀 --> <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="suffix" value=".vm" /> </bean>

(3)velocity.properties配置文件

#encoding
input.encoding=UTF-8
output.encoding=UTF-8#autoreload when vm changed
file.resource.loader.cache=false file.resource.loader.modificationCheckInterval=2 velocimacro.library.autoreload=false 

配置完后,写一个vm页面展示所有用户的userName和age。
showAllUser.vm

<!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>show all users</title> </head> <body> <table > #foreach($user in $userList) <tr > <td >$user.userName</td> <td >$user.age</td> </tr> #end </table> </body> </html> 

访问127.0.0.1/spring_mybatis_springmvc/user/showAllUser.do
可以显示,但是中文出现了乱码。
只需在velocityViewResolver加入配置

<property name="contentType"><value>text/html;charset=UTF-8</value></property>

转载于:https://www.cnblogs.com/dcxmaozi/p/6773234.html

Spring MVC整合Velocity相关推荐

  1. fastjson与spring mvc整合的配置

    fastjson 是阿里巴巴开发的开源json解析组件,方便于通过java来生成和解析json格式的字符串和对象. fastjson可以对Spring的返回数据进行json转换(SpringMVC的@ ...

  2. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    Java框架搭建-Maven.Mybatis.Spring MVC整合搭建 1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/e ...

  3. Spring、Mybatis、Spring MVC整合实例

    Spring.Mybatis.Spring MVC整合实例笔记 源码地址:https://gitee.com/name168/SSM_Demo 1.Maven web项目创建(IDEA) 2.SSM整 ...

  4. Spring和Spring Mvc整合详解

    Spring和Spring Mvc整合详解 官方主页 Spring Spring Mvc SpringMvc 5,可以参考这一篇<Spring和Spring Mvc 5整合详解> 概述 S ...

  5. 拦截器及 Spring MVC 整合

    一.实验介绍 1.1 实验内容 本节课程主要利用 Spring MVC 框架实现拦截器以及 Spring MVC 框架的整合. 1.2 实验知识点 Spring MVC 框架 拦截器 1.3 实验环境 ...

  6. Spring Mvc 整合 Mybatis

    第一步:pom中引入需要的jar包依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...

  7. Spring MVC+整合Batis 经过测试版

    曾经使用过Spring和Spring mvc 但是之后多使用框架开发,渐渐淡忘.为拾起来特写此博文,其中参考了很多文章和例子,也报了很多错误幸亏有互联网让我们能够找到适合自己的答案.(PS:网上很多发 ...

  8. SSM开发书评网29:后台二:wangEditor图片上传;(主要内容是【wangEditor图片上传的文档要求】,【Spring MVC整合FileUpload组件,以实现文件上传功能】)

    说明: (1)本篇博客内容说明:[在后台系统,我们点击新增按钮后,会弹出新增图书对话框]→[该对话框中,包含一个wangEditor富文本编辑器]→[wangEditor富文本编辑器中,可以包含图片] ...

  9. Spring mvc整合freemarker详解

    1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模 ...

最新文章

  1. python北京理工大学推荐的书-Python语言程序设计
  2. 【拥抱大厂系列】百度面试官问过的 “JVM内存分配与回收策略原理”,我用这篇文章搞定了
  3. Linux查看swap使用情况小脚本
  4. 1.在Linux下如何使用软盘、光盘以及DOS等非Linux分区
  5. textarea 输入框限制字数
  6. SAP Spartacus 用户请求中的 current id 是从哪里来的
  7. 接手一手机android app维护 如何快速进入,快速上手Android开发,学会这三点就够了!...
  8. celery expires 让celery任务具有时效性
  9. BZOJ4898/5367 Apio2017商旅(分数规划+floyd)
  10. MySQL--当事务遇到DDL命令
  11. mysql 30入门_mysql入门(三)
  12. BS 和CS的区别
  13. https://www.cnblogs.com/1995hxt/p/5252098.html 看jar包源码
  14. Python语言程序设计基础_实验四_函数(二)_答案_通识教育必修课程_上海师范大学
  15. [游泳] 游泳学习课程
  16. seo搜索引擎优化-SEO优化教程附关键词工具以及文章采集软件
  17. 霸屏三大综艺 小度强势破圈引发“胜利者效应”
  18. 在web.xml中配置多个param-value
  19. lego-loam 跑 kitti00包(kitti2bag+lego-loam+evo)详细版
  20. 恭喜EDG 夺得冠军

热门文章

  1. windos server 2003 邮件服务器的搭建
  2. 网络视频会议整体解决方案
  3. 设计模式笔记(2)---单件模式(创建型)
  4. 批量插入数据的存储过程
  5. php 提交成功后跳转,PHP提交后跳转的简单示例
  6. Xcode文件名后的字母含义
  7. 鼠标悬停事件_Red语言-GUI-事件和参与者
  8. c语言p gt name,c语言中strcmp(p-name,s)是什么意思?
  9. 计算几个变量之间的相关系数,计算协方差矩阵时:TypeError: cannot perform reduce with flexible type
  10. java 延迟初始化_java-不正确的延迟初始化