Spring MVC配置Velocity

2024-04-15 09:38
文章标签 java 配置 spring mvc velocity

本文主要是介绍Spring MVC配置Velocity,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Velocity是一种Java模板引擎。

和JSP,Freemarker差不多,都是用来展示网页内容的。

和JSP不同的是velocity只能显示Action中的数据,不能处理数据。不能写java代码,但是可以使用Velocity标记。

Velocity的页面(模版)可是是任何类型(text/html)的文件。

当Velocity应用于web开发时,Velocity将java代码从web页面中分离出来,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,

也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。


下面简要描述一下在spring mvc中配置velocity的步骤: 

1、引入velocity所需要的包

2、添加配置信息

3、测试


步骤详解:

1、引入velocity包:velocity-1.7.jar、velocity-tools-2.0.jar、spring-context-support-4.2.5.RELEASE.jar(无视版本号)

pom文件配置的话,引入下面jar包即可

        <!--velocity start--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.6</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-tools</artifactId><version>2.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.2.5.RELEASE</version></dependency><!--velocity end-->

2、在配置文件里添加配置信息

VelocityConfigurer负责在spring中设置Velocity引擎。这里,通过属性resourceLoaderPath告诉Velocity到哪里寻找它的模板。建议将模板放到WEB-INF下的某个子目录下,可以保证这些模板不能被直接访问。

在配置属性时,有两种配置方法:

(1)通过配置文件方式

<!--模板信息配置--><bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"><property name="resourceLoaderPath" value="/WEB-INF/velocity/" /><!-- 模板存放的路径 --><property name="configLocation" value="classpath:velocity.properties"/></bean>


velocity.properties:

input.encoding=UTF-8
output.encoding=UTF-8
directive.foreach.counter.name=loopCounter
directive.foreach.counter.initial.value=0


(2)通过属性的方式:

   <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">  <property name="resourceLoaderPath"  value="WEB-INF/velocity/" /><!-- 設置模板防止位置-->  <property name="velocityProperties">  <props>  <prop key="directive.foreach.counter.name">loopCounter</prop>  <prop key="directive.foreach.counter.initial.value">0</prop>  <prop key="input.encoding">UTF-8</prop><!-- 指定模板引擎进行模板处理的编码 -->  <prop key="output.encoding">UTF-8</prop><!-- 指定输出流的编码 -->  </props>  </property>  </bean>  


我第一次配置时,用的第一种方式,出现一个问题,就是走完后台后,页面不进行跳转,一直是layout.vm。

后来改为第二种方式,问题解决,再改为第一种配置,问题再现不了。如果有朋友碰到类似问题,可以试试另一种方式配置。

 

3、配置velocity解析视图

<!-- 配置视图的显示 --><bean id="ViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"><property name="cache" value="true" /><property name="prefix" value="/" /><!-- 视图文件的前缀,即存放的路径 --><property name="suffix" value=".vm" /><!-- 视图文件的后缀名 --><!--<property name="toolboxConfigLocation" value="/WEB-INF/tools.xml" /><!–toolbox配置文件路径–>--><property name="dateToolAttribute" value="date" /><!--日期函数名称--><property name="numberToolAttribute" value="number" /><!--数字函数名称--><property name="contentType" value="text/html;charset=UTF-8" /><property name="exposeSpringMacroHelpers" value="true" /><!--是否使用spring对宏定义的支持--><property name="exposeRequestAttributes" value="true" /><!--是否开放request属性--><property name="requestContextAttribute" value="rc"/><!--request属性引用名称--></bean>

VelocityViewResolver和Velocity的关系与InternalResourceViewResolver和JSP的关系相似。

InternalResourceViewResolver使用prefix属性和suffix属性由视图的逻辑名构造出模板文件路径,这样在Controller中的ModelAndView中直接通过文件名找模板。


4、测试页面

Action方法:

@RequestMapping(value="hello")
public ModelAndView printWelcome(HttpServletRequest request,HttpServletResponse response) {ModelAndView mav= new ModelAndView();mav.addObject("city","test");mav.setViewName("hello");return mav;
}

5、在/WEB-INF/velocity/ 路径下信件hello.vm

<html>
<body><h1>${city}</h1>
</body>
</html>


6、启动项目,访问http://localhost:8080/hello.action


这篇关于Spring MVC配置Velocity的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905471

相关文章

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT