• springMVC+freemarker整合


    转自:http://angelbill3.iteye.com/blog/1980904

    在springMVC的项目中,加入freemarker 

    1、首先导入springMVC-webmvc所需的JAR包。 
    (若用maven的话,如下) 

    Java代码  收藏代码
    1. <dependency>  
    2.     <groupId>org.springfremework</groupId>  
    3.     <artifactId>spring-webmvc<artifactId>  
    4.     <version>3.2.3.RELEASE</version>  
    5. </dependency>  



    2、配置web.xml(启动mvc框架) 

    Java代码  收藏代码
    1. <servlet>    
    2.         <servlet-name>spring</servlet-name>    
    3.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    
    4.         <load-on-startup>1</load-on-startup>    
    5. </servlet>    
    6.     
    7. <servlet-mapping>    
    8.         <servlet-name>spring</servlet-name>    
    9.         <url-pattern>*.htm</url-pattern>    
    10. </servlet-mapping>    



    相应的xml配置命令规则为:【servlet名字】-servlet.xml,(如本文为:spring-servlet.xml),默认目录和web.xml放一起,即WEB-INF目录下。 

    3、配置spring-servlet.xml(****重要****) 
    在spring-servlet文件中加入:(annotation以及包扫描范围已略。) 
    关于freemarker模版的配置,可以直接在xml里配,也可以用properties文件配。 

    Java代码  收藏代码
    1. <!-- 设置freeMarker的配置文件路径 -->    
    2.     <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">    
    3.         <property name="location" value="classpath:conf/freemarker.properties"/>    
    4.     </bean>  
    5.       
    6.     <!-- 配置freeMarker的模板路径 -->    
    7.     <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">    
    8.         <property name="freemarkerSettings" ref="freemarkerConfiguration"/>    
    9.         <property name="templateLoaderPath">    
    10.             <value>/WEB-INF/ftl/</value>    
    11.         </property>    
    12.     </bean>  
    13.         
    14.     <!-- 配置freeMarker视图解析器 -->    
    15.     <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">    
    16.         <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>    
    17.         <property name="contentType" value="text/html; charset=utf-8"/>    
    18.         <property name="cache" value="true"/>    
    19.     </bean>  



    4、新建文件:freemarker.properties,放conf目录下 

    Java代码  收藏代码
    1. #设置标签类型:square_bracket:[]     auto_detect:[]<>    
    2. tag_syntax=auto_detect    
    3. #模版缓存时间,单位:秒   
    4. template_update_delay=0    
    5. default_encoding=UTF-8    
    6. output_encoding=UTF-8    
    7. locale=zh_CN    
    8. #设置数字格式 ,防止出现 000.00    
    9. number_format=#    
    10. #变量为空时,不会报错  
    11. classic_compatible=true   
    12. #这个表示每个freemarker的视图页面都会自动引入这个ftl文件。里面定议的就是一些宏,如text文本框,各种form元素   
    13. #auto_import="/WEB-INF/templates/index.ftl" as do    



    这个模版属性是比较基本的定义,其中比较重要的是最后一条:auto_import="/WEB-INF/templates/index.ftl" as do,这个表示每个freemarker的视图页面都会自动引入这个ftl文件。里面定议的就是一些宏,如text文本框,各种form元素(本文没作深入研究。) 

    5、后台新建测试Control类:FreemarkerController 

    Java代码  收藏代码
    1. import org.springframework.stereotype.Controller;  
    2. import org.springframework.ui.ModelMap;  
    3. import org.springframework.web.bind.annotation.RequestMapping;  
    4.   
    5. @Controller    
    6. public class FreemarkerController {    
    7.         
    8.     @RequestMapping("/hi")    
    9.     public String sayHello(ModelMap map){    
    10.         System.out.println("say hi ……");    
    11.     
    12.         map.put("name", "kimi");    
    13.     
    14.         return "/hi.ftl";    
    15.     }    
    16.     
    17. }    
    18.   
    19. 6、前台新建测试页:hi.ftl(放WEB-INF/ftl目录下)  
    20. <pre class="java" name="code"><html>    
    21. <body>    
    22.     <h1>holle world ${name}</h1><br/>    
    23.     1 + 1 = 3? ${(1 != 1)?string("yes", "no")}    
    24. </body>    
    25. </html>   
    26. </pre>  
    27. <br>  



    7、启动项目。 
    发现报错:Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfigurationFactory 

    少了jar包,再导入spring-context-support-3.2.3.RELEASE包即可。 
    maven: 

    Java代码  收藏代码
    1. <dependency>    
    2.     <groupId>org.springframework</groupId>    
    3.     <artifactId>spring-context-support</artifactId>    
    4.     <version>3.2.3.RELEASE</version>    
    5. </dependency>    



    再次启动,没有错,访问项目后,网页内容如下: 
     

    ------------------------------------------ 
    参考资料: 
    http://www.360doc.com/content/12/0809/13/4280915_229198282.shtml 

  • 相关阅读:
    shell_02
    shell_practise
    Shell_01
    PythonDay_03
    PythonDay_02
    PythonDay_01
    面试题32:从上到下打印二叉树
    面试题 31 : 栈的压入、弹出序列
    面试题20 : 表示数值的字符串
    面试题29:顺时针打印矩阵
  • 原文地址:https://www.cnblogs.com/weizhxa/p/6836246.html
Copyright © 2020-2023  润新知