`
crazycat03
  • 浏览: 175834 次
  • 性别: Icon_minigender_2
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

velocity在spring中的使用

阅读更多

之前做搜索时候,前台展示使用了velocity,由于时间比较急,所以也没深入使用,这里主要记一下配置及简单使用

 

1 web.xml文件里的配置:

<!-- Velocity 的配置 -->
	<servlet>
		<servlet-name>velocity</servlet-name>
		<servlet-class>
			org.apache.velocity.tools.view.servlet.VelocityViewServlet
		</servlet-class>
		<init-param>
			<param-name>org.apache.velocity.toolbox</param-name>
			<param-value>classpath:toolbox.xml</param-value>
		</init-param>
		<init-param>
			<param-name>org.apache.velocity.properties</param-name>
			<param-value>classpath:velocity.properties</param-value>
		</init-param>
		<load-on-startup>10</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>velocity</servlet-name>
		<url-pattern>*.vm</url-pattern>
	</servlet-mapping>

	<!-- Velocity 的配置结束 -->

 toolbox.xml,velocity有自己决定放到什么位置,这里指定路径就可以

velocity.properties里velocimacro.library = VM_global_library.vm,所指文件在下面velocityConfigurer指定的resourceLoaderPath下

 当然要加入需要的jar包,

velocity-1.4.jar
velocity-dep-1.4.jar
velocity-dvsl-1.0.jar
velocity-tools-1.4.jar
velocity-tools-generic-1.4.jar
velocity-tools-view-1.4.jar 有这些就全了,呵呵

 

2 配置viewResolver

 

首先必须要先配置velocityConfigurer

<bean id="velocityConfigurer"
		class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
		<property name="configLocation"><value>classpath:velocity.properties</value></property> 
		<property name="resourceLoaderPath">
			<value>WEB-INF/velocity/</value>
		</property>
		<property name="velocityProperties">
			<props>
				<prop key="directive.foreach.counter.name">
					loopCoounter
				</prop>
				<prop key="directive.foreach.counter.initial.value">
					0
				</prop>
				<prop key="input.encoding">UTF-8</prop>
				<prop key="output.encoding">UTF-8</prop>
				<prop key="contentType">text/html;charset=UTF-8</prop>
			</props>
		</property>
	</bean>

 resourceLoaderPath指定页面存放的文件夹,会自动到这个文件夹下找文件

 

第二处主要制定编码,防止页面出现乱码的情况,虽然在src的velocity.properties里也指定了编码但还是出现乱码的情况,这边重新指定。

 

<bean id="viewResolver"
		class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
		<property name="suffix">
			<value>.vm</value>
		</property>
		<property name="exposeRequestAttributes">
			<value>true</value>
		</property>
		<property name="exposeSessionAttributes">
			<value>true</value>
		</property>
		<property name="contentType">
			<value>text/html;charset=UTF-8</value>
		</property>
<!--		<property name="toolboxConfigLocation" value="toolbox.xml"/>-->
<!--		<property name="toolboxConfigLocation">-->
<!--			<value>toolbox.xml</value>-->
<!--		</property>-->
	</bean>

 

 这样基本就可以用了,,vm文件放在web-inf/velocity下

<property name="errorView">
   <value>results</value>会找到web-inf/velocity下的results.vm文件
  </property>

 

4 还没深入研究

 

<!-- <property name="toolboxConfigLocation" value="toolbox.xml"/>-->
<!-- <property name="toolboxConfigLocation">-->
<!-- <value>toolbox.xml</value>-->
<!-- </property>-->

不知道为什么toolbox不能用,总是报

java.lang.NullPointerException
 at org.springframework.web.servlet.view.velocity.VelocityToolboxView.createVelocityContext(VelocityToolboxView.java:114)错误,toolbox.xml放到web-inf/velocity下也不行,有知道的朋友说一下,网上搜了半天,只有两个韩国网站,又看不懂韩语,呵呵

分享到:
评论
6 楼 hyf002 2015-03-17  
奶油花生 写道
terryzz 写道
"><!--        <property name="toolboxConfigLocation" value="toolbox.xml"/>--> 
<!--     <property name="toolboxConfigLocation">--> 
<!--         <value>toolbox.xml</value>--> 
<!--     </property>-->

貌似我的也不行  虽然没有报错  但是工具没起到作用

——————
我也是配置不报错,但是没起作用


是路径问题,toolboxConfigLocation默认是去WEB-INF下找的,如果配置文件在源码目录下,编译后对应的路径是在WEB-INF/classes下的,这时候要写成WEB-INF/classes/.../toolbox.xml,"..."根据配置文件具体层次写
5 楼 奶油花生 2014-10-23  
terryzz 写道
"><!--        <property name="toolboxConfigLocation" value="toolbox.xml"/>--> 
<!--     <property name="toolboxConfigLocation">--> 
<!--         <value>toolbox.xml</value>--> 
<!--     </property>-->

貌似我的也不行  虽然没有报错  但是工具没起到作用

——————
我也是配置不报错,但是没起作用
4 楼 穆绯 2014-08-29  
createVelocityContext这个问题我也遇到了,后来发下是toolbox.xml这个文件没有加载到,后来我换了个地址,例如<property name="toolboxConfigLocation" value="WEB-INF/conf/vm-toolbox.xml" />就可以加载到了。

参考:http://forum.spring.io/forum/spring-projects/web/21884-exposing-velocity-generic-tool-results-in-nullpointer
3 楼 crazycat03 2012-10-10  
碧落海的风 写道
<property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml"/>

我的可以。。


有机会再用的时候试试
2 楼 碧落海的风 2012-08-20  
<property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml"/>

我的可以。。
1 楼 terryzz 2011-02-11  
"><!--        <property name="toolboxConfigLocation" value="toolbox.xml"/>--> 
<!--     <property name="toolboxConfigLocation">--> 
<!--         <value>toolbox.xml</value>--> 
<!--     </property>-->

貌似我的也不行  虽然没有报错  但是工具没起到作用

相关推荐

    SpringBoot1.5以上版本兼容velocity,不降级spring

    2.导入本项目中的org.springframework目录下的velocity支持类,原样copy过去或自己打个jar 3.不想写java类配置就直接@ImportResource({"classpath:velocity.xml"})原来的xml配置 4.其他原来是啥就是啥开工

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

    - **使用 Velocity 模板**:在控制器中返回视图名称,Spring 会自动调用视图解析器,并将模型数据传递给 Velocity 模板进行渲染。 ##### 2. 集成 Hibernate Spring 2.0 提供了多种方式来集成 Hibernate,常见的...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    Spring、SpringMVC、Mybatis、Velocity和Maven是Java Web开发中常用的一组技术栈,它们各自在软件开发的不同层面发挥着重要作用。这个压缩包文件的标题和描述表明,它提供了一个集成这些技术的演示项目,下面我们将...

    spring mvc与velocity整合

    在Spring MVC的配置文件(如`spring-mvc.xml`)中,你需要配置VelocityViewResolver,这是Spring MVC用来解析Velocity模板的类。设置其prefix和suffix属性,分别指定视图前缀和后缀,例如: ```xml ...

    Velocity入门教程(Spring集成Velocity)

    Velocity入门教程,语法,Velocity布局,Spring框架集成Velocity

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

    为了在Spring中集成Velocity,我们需要添加以下依赖: 1. `velocity-engine-core`:Velocity的核心库。 2. `velocity-tools-view`:Spring MVC与Velocity集成所需的工具库。 在Spring配置文件中,你需要定义一个`...

    velocity spring jpa hibernate 整合

    在这个项目中,"velocity spring jpa hibernate 整合"涉及到的是四个关键组件:Velocity、Spring、JPA(Java Persistence API)和Hibernate。让我们逐一深入理解这些技术并探讨它们如何协同工作。 1. **Velocity**...

    spring mvc mybatis velocity 示范

    开发者可以在Velocity模板中使用变量和控制结构,这些变量由Java后端提供,然后 Velocity 将这些模板和数据结合,生成最终的HTML或者其他格式的输出。Velocity 的语法简洁,易于学习,且执行效率高。 结合使用...

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

    要在Spring Boot项目中使用Velocity,首先需要在`pom.xml`中添加依赖。Spring Boot并没有默认包含Velocity,所以我们需要手动引入: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-...

    spring+velocity发送邮件

    根据提供的信息,我们可以详细探讨如何使用Spring框架结合Velocity模板引擎来实现邮件的自动化发送功能。这一过程涉及到Spring框架的基本配置、Velocity模板引擎的使用以及JavaMail API的应用。 ### Spring框架与...

    Spring Velocity简单的一个例子(转)

    Spring Velocity是一个将Velocity模板引擎与Spring框架集成的示例,这个例子主要展示了如何在Spring应用中使用Velocity来渲染动态内容。Velocity是一个Java模板引擎,它允许开发者将逻辑和表示分离,使得网页设计...

    spring+velocity+ibatis

    通过这个项目,开发者可以学习到如何配置Spring的Bean、如何编写Velocity模板、如何设计iBATIS的映射文件以及如何在Spring中集成这三个组件。这不仅有助于提升Java Web开发技能,还能加深对MVC模式、模板引擎和持久...

    struts+spring+velocity

    Velocity 则作为视图层,将Spring中的数据渲染成用户可见的页面。 例如,一个典型的流程可能如下: 1. 用户发送请求到Struts Action。 2. Struts Action通过Spring的依赖注入获取Service对象,执行业务逻辑。 3. ...

    Struts2+Spring+Velocity项目

    在`Struts2+Spring+Velocity`项目中,这三者通常是这样协作的: 1. **Struts2** 负责处理HTTP请求,解析请求参数,调用相应的Action。Action由Spring管理,通过DI注入必要的服务和数据。 2. **Spring** 作为整个...

    Spring已集成jsp的环境下同时集成Velocity

    4. **使用Velocity模板**:在Spring的Controller中,我们可以创建ModelAndView对象,设置模型数据,并指定对应的Velocity模板,如下所示: ```java @RequestMapping("/hello") public ModelAndView hello() { ...

    spring velocity demo

    总结起来,Spring Velocity Demo是一个演示如何在Spring应用中使用Velocity进行动态页面渲染的实例。通过Eclipse和Maven,我们可以快速地搭建开发环境,而Spring与Velocity的集成则使得模板引擎的使用更加方便,为...

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

    在这个"struts2+spring+velocity扩展实例V1版本"中,我们可以看到这三个框架的集成与应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它的主要职责是处理用户的请求,并将其...

    velocity入门使用教程

    首先,创建一个模板文件(.vm),在这个文件中使用VTL语法定义输出格式。然后,在Java代码中初始化Velocity引擎,并通过Velocity引擎读取模板文件,再将Java对象数据传入模板,最终合并生成最终的文本输出。 具体...

Global site tag (gtag.js) - Google Analytics