SpringMVC 集成velocity

来源:互联网 发布:windows 10 home 编辑:程序博客网 时间:2024/06/01 14:06

前言

       没有美工的时代自然少不了对应的模板视图开发,jsp时代我们用起来也很爽,物极必反,项目大了,数据模型复杂了jsp则无法胜任。

 

开发环境

      idea2016、jdk1.8、tomcat8.0.35

      spring 4.3.6、velocity1.6、velocity-tools 2.0

 

SpringMVC集成velocity

1、VelocityViewResolver。

<!--VelocityViewResolver视图配置-->    <!--<bean  class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">-->        <!--<property name="suffix" value=".vm"/>-->        <!--<property name="prefix" value=""/>-->        <!--<property name="contentType" value="text/html;charset=UTF-8"/>-->    <!--</bean>-->

 

2、VelocityLayoutViewResolver。也就是可以自定义模板布局。和VelocityViewResolver相比较的话多了一个layout.vm,在WEB-INF/views/layout/layout.vm配置。

<!--VelocityLayoutViewResolver-->    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">        <property name="suffix" value=".vm"/>        <property name="prefix" value=""/>        <property name="contentType" value="text/html;charset=UTF-8"/>        <property name="layoutUrl" value="layout/layout.vm"/>    </bean>

 

3、完整的springmvc-servlet.xml

 <context:component-scan base-package="com.autohome.controller" />    <!-- 注解驱动 -->    <mvc:annotation-driven />    <!--velocity模板配置-->    <bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">        <property name="resourceLoaderPath" value="/WEB-INF/views/"/>        <property name="configLocation" value="classpath:velocity.properties"/>        <property name="velocityProperties">            <props>                <prop key="input.encoding">UTF-8</prop>                <prop key="output.encoding">UTF-8</prop>            </props>        </property>    </bean>    <!--VelocityViewResolver视图配置-->    <!--<bean  class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">-->        <!--<property name="suffix" value=".vm"/>-->        <!--<property name="prefix" value=""/>-->        <!--<property name="contentType" value="text/html;charset=UTF-8"/>-->    <!--</bean>-->    <!--VelocityLayoutViewResolver-->    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">        <property name="suffix" value=".vm"/>        <property name="prefix" value=""/>        <property name="contentType" value="text/html;charset=UTF-8"/>        <property name="layoutUrl" value="layout/layout.vm"/>    </bean>

4、pom.xml

 <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context</artifactId>      <version>4.3.6.RELEASE</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-web</artifactId>      <version>4.3.6.RELEASE</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context-support</artifactId>      <version>4.3.6.RELEASE</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-webmvc</artifactId>      <version>4.3.6.RELEASE</version>    </dependency>    <dependency>      <groupId>org.apache.velocity</groupId>      <artifactId>velocity</artifactId>      <version>1.6.2</version>    </dependency>    <dependency>      <groupId>org.apache.velocity</groupId>      <artifactId>velocity-tools</artifactId>      <version>2.0</version>    </dependency>  </dependencies>

 我的layout.vm. 视图页嵌套的内容就在$screen_content中渲染

<html xmlns="http://www.w3.org/1999/xhtml">    <head>    </head>    <body>        <div>header</div>        <div>            $screen_content        </div>        <div>footer</div>    </body></html>

index.vm

<h2>${msg}</h2>

layout.vm的渲染结果

 

总结

      1、pom下载spring-context.jar包时并没有自动加载spring-context-support.jar  然后我在springmvc-servlet编写velocityconfig VelocityConfigurer类时找不到configLocation属性。后加上spring-context jar包后OK。

      2、既然在velocity.properties文件中已经配置了编码格式,还要在velocityconfig中继续配置编码方式,如果不配置的话则抛一个spring.vm相关的异常, 不知道这个设计何为。

 

参考资料

http://shishi11.iteye.com/blog/869290

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 灭火器买到不合格产品怎么办 路边买到假手机怎么办 网上买的手机屏幕碎了怎么办 天猫订单删除了怎么办 华为入职预约满怎么办 三星c5玩王者荣耀卡怎么办 三星s8背部碎了怎么办 保修期内发动机坏了怎么办 6s主板进水了怎么办 新买的狗晚上叫怎么办 官网手机坏了怎么办 小米商城买手机不发货怎么办 小米商城分期额度不够怎么办 京东买家未退款怎么办 京东自营不退款怎么办 苏宁易购的无门槛15元怎么办 小米5shome键失灵怎么办 苹果电量用的快怎么办 苹果5s掉电快怎么办 小米5s返回键失灵怎么办 苹果5s漏电是怎么办 苹果6s手机漏电怎么办 5s返回键失灵怎么办 苹果5s返回键失灵怎么办 小米5返回键失灵怎么办 小米手机返回键失灵怎么办 萍果6splus关机键失灵怎么办 苹果5s很快没电怎么办 天猫分期付款没有花呗怎么办 淘宝花呗分期额度不够怎么办 支付宝余额支付超限怎么办 想分期花呗不够怎么办 来分期提现不了怎么办 帮朋友分期手机他不还钱怎么办 手机分期套现被骗了怎么办 学生既有分期办手机被骗怎么办? 京东刚买完东西第二天降价了怎么办 微信上买东西不给退货怎么办 微信买东西转红包被骗怎么办 买手机分期被骗了怎么办 苹果手机摔弯了怎么办