• Spring学习(三)——集成 Velocity


    上篇文章http://www.cnblogs.com/wenjingu/p/3822989.html我们使用Gradle构建了一个简单的Spring MVC Web应用程序,

    本篇将在上篇的基础上将jsp页面改为velocity模板,并集成到Spring MVC框架中。使用Velocity开发视图的好处是在团队开发中,将

    java代码从web页面中分离出来,使得页面开发人员和业务逻辑开发人员的工作解耦,更有利于团队分工合作和web站点的长期维护。

    1、修改gradle文件,增加依赖包,代码如下:

    apply plugin: 'idea' 
    apply plugin: 'java'
    
    repositories { 
        mavenCentral() 
        maven { url "http://repo.spring.io/release" } 
    }
    
    dependencies { 
        compile( 
                "org.springframework:spring-context:4.0.5.RELEASE", 
                "org.springframework:spring-web:4.0.5.RELEASE", 
                "org.springframework:spring-webmvc:4.0.5.RELEASE", 
                "org.springframework:spring-context-support:4.0.5.RELEASE", 
                "org.apache.velocity:velocity:1.7", 
                "org.apache.velocity:velocity-tools:2.0", 
                "org.anarres.gradle:gradle-velocity-plugin:1.0.0" 
        ) 
        testCompile("org.springframework:spring-test:4.0.5.RELEASE") 
        runtime("jstl:jstl:1.2") 
    }
    
    task copyJars(type: Copy) { 
        from configurations.runtime 
        into 'lib' // 目标位置 
    }

    运行命令:gradle copyJars。

    2、修改spring-web-servlet.xml配置文件,完整代码如下:

    <?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns:context="http://www.springframework.org/schema/context" 
           xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    
        <context:component-scan base-package="controller"/>
    
        <bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> 
            <property name="resourceLoaderPath" value="/WEB-INF/vm"/>
            <property name= "velocityProperties"> 
                <props> 
                    <prop key= "input.encoding">utf-8</prop> 
                    <prop key= "output.encoding">utf-8</prop> 
                </props> 
            </property> 
        </bean>
    
        <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> 
            <!--<property name="prefix" value="/WEB-INF/vm/"/>--> 
            <property name="suffix" value=".vm"/>
            <property name="contentType" value="text/html;charset=utf-8"></property> <!-- 设置编码格式 --> 
        </bean>
    
        <!-- 扫描web包,应用Spring的注解 --> 
        <!--<context:component-scan base-package="controller"/>-->
    
        <!--<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">--> 
        <!--<property name="prefix" value="/WEB-INF/view/"/>--> 
        <!--<property name="suffix" value=".jsp"/>--> 
        <!--</bean>--> 
    </beans>

    LoginController代码不变。

    并在WEB-INF目录下新建目录vm,将所有的Velocity文件放在该目录下。

    3、新建login.vm文件,代码如下:

    <html> 
    <head> 
        <title>登录VelocityDemo</title> 
    </head> 
    <body> 
    <form action="/loginCheck.html" method="post"> 
        用户名: 
        <input type="text" name="userName"> 
        <br> 
        密 码: 
        <input type="password" name="password"> 
        <br> 
        <input type="submit" value="登录"/> 
    </form> 
        #foreach ($error in $errors) 
        <br>$error 
        #end 
    </body> 
    </html>

    上述页面的中文显示有乱码。

    4、velocity中文乱码解决方案

    在spring-web-servlet.xml配置文件中的添加如下代码:

    <property name= "velocityProperties"> 
               <props> 
                   <prop key= "input.encoding">utf-8</prop> 
                   <prop key= "output.encoding">utf-8</prop> 
               </props> 
     </property> 
       
     <property name="contentType" value="text/html;charset=utf-8"></property> <!-- 设置编码格式 --> 

    5、测试结果

    image

    Demo源码下载:VelocityDemo2.0.zip ,lib中的jar包上传时删除了,运行前请先运行命令:gradle copyJars下载jar包。

  • 相关阅读:
    原生js写的flybird小游戏
    vue的图片上传
    移动端常用的meta标签,媒体查询以及一些样式设置《转载收藏》
    面向对象写的简单的colors rain
    canvas小球
    JS基础(常见操作函数和数组的方法)
    JS基础(instanceof详解)
    JS基础(垃圾回收)
    JS基础(arguments详解)
    JS基础(显性原型和隐性原型)
  • 原文地址:https://www.cnblogs.com/wenjingu/p/3824294.html
Copyright © 2020-2023  润新知