主要使用到的jar 文件:spring mvc +freemarker.jar

第一步:spring mvc 集成 freemarker

  1. <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
  2. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  3. <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
  4. <property name="prefix" value="/backstage/jsp/" />
  5. <property name="suffix" value=".jsp" />
  6. <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>
  7. <property name="order" value="1"/>
  8. </bean>
  9. <!-- 配置freeMarker视图解析器 -->
  10. <bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  11. <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
  12. <property name="contentType" value="text/html; charset=UTF-8"/>
  13. <property name="exposeRequestAttributes" value="true" />
  14. <property name="exposeSessionAttributes" value="true" />
  15. <property name="exposeSpringMacroHelpers" value="true" />
  16. <property name="cache" value="true" />
  17. <property name="suffix" value=".ftl" />
  18. <property name="order" value="0"/>
  19. </bean>
  20. <!-- 配置freeMarker的模板路径 -->
  21. <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  22. <property name="templateLoaderPath" value="/backstage/jsp/"/>
  23. <property name="freemarkerVariables">
  24. <map>
  25. <entry key="xml_escape" value-ref="fmXmlEscape" />
  26. </map>
  27. </property>
  28. <property name="defaultEncoding" value="UTF-8"/>
  29. <property name="freemarkerSettings">
  30. <props>
  31. <prop key="template_update_delay">3600</prop>
  32. <prop key="locale">zh_CN</prop>
  33. <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
  34. <prop key="date_format">yyyy-MM-dd</prop>
  35. <prop key="number_format">#.##</prop>
  36. </props>
  37. </property>
  38. </bean>
  39. <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>

【重点:在JSP和Freemarker的配置项中都有一个order property,上面例子是把freemarker的order设置为0,jsp为1。意思是找view时,先找ftl文件,再找jsp文件做为视图。】

第二步:controller代码

  1. package com.wlsq.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.servlet.ModelAndView;
  6. @Controller
  7. @RequestMapping(value="/ftl")
  8. public class FreemarkerTest {
  9. @RequestMapping(value="/index",method=RequestMethod.GET)
  10. public ModelAndView index() {
  11. ModelAndView view = new ModelAndView("TestFreemarker/index");
  12. view.addObject("message", "Say hi for Freemarker.");
  13. return view;
  14. }
  15. }

第三步:TestFreemarker/index.ftl

    1. <Html>
    2. <head>
    3. <title>${message}</title>
    4. </head>
    5. <body>
    6. <b>${message}</b>
    7. <body>
    8. </html>

最新文章

  1. 微软的坑:Url重写竟然会引起IIS内核模式缓存不工作
  2. Spark Streaming消费Kafka Direct方式数据零丢失实现
  3. Unity3d + NGUI 的多分辨率适配
  4. 工厂模式/factory模式/创建型模式
  5. 在数据表中添加一个字段的SQL语句怎么写
  6. 63. Unique Paths II
  7. Android Studio ndk-Jni开发详细
  8. ORA-16014报错解决
  9. 2014ACM/ICPC亚洲区广州站 Song Jiang&#39;s rank list
  10. 让正则表达式变简单(PythonVerbalExpressions)
  11. .net core控制台应用程序初识
  12. 转载 Java设计模式
  13. centos下安装Vmware-tools时出现的问题
  14. [Swift]LeetCode994. 腐烂的橘子 | Rotting Oranges
  15. Kubernetes系列之理解K8s Service的几种模式
  16. 你真的会PHP吗?
  17. .gvfs: Permission denied
  18. POI richText和html的转换案例
  19. SpringMVC解析Json字符串
  20. day12作业

热门文章

  1. 使用Maven构建JavaEE项目
  2. java根据freeMark模板生成内容
  3. Sql Server 中锁的概念(1)
  4. C# 如何正确删除List中的item
  5. canvas之刮刮乐
  6. 【ORACLE】查看死锁进程并结束死锁的脚本
  7. 洛谷 P1434 [SHOI2002]滑雪
  8. nginx启动、重启、关闭、升级
  9. FTS5与DIY
  10. P3258 松鼠的新家