Java SSM 整合 freemarker
来源:互联网 发布:c语言入门经典程序 编辑:程序博客网 时间:2024/05/19 00:43
原文转载自:http://www.jb51.NET/article/43200.htm
前言:FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
簡而言之,Freemarker就是在Jave Web開發中以模板的方式在頁面展示從服務端獲取的信息。
Java: FreeMarker的配置和使用
初学什么都不可以忽略的地方就是这个东西的官方网站:http://freemarker.org/。下载或者API都可以参考这里。
FreeMarker是什么
非常的简单明了。FreeMarker是一个java包。实现了MVC模式,分离开发者和设计师。也就是分离html也java的代码。
FreeMarker是如何工作的
这是官网的图。非常明确的说明了FreeMarker是如何运作的。首先需要有一个template模板,在那里就是一堆的html标签和一些专属FreeMarker的标签,这些标签之后会被具体的数据代替。这些数据就是有左下的Java objects提供。<FreeMarker>就是工程中的Jar包。他把这些模板和java objects的数据加工组合之后输出html页面。所以,FreeMarker的功能,就如官网中一直强调的,不是别的而是一个模板引擎。
1.引入jar包
Maven 代码:
<!-- 添加 Freemarker 支持--><dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version></dependency><!-- 添加支持 热部署 --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.4.RELEASE</version></dependency>2. 添加配置信息:
在src/main/resources/ 目录下 新建Freemarker属性文件 freemarker.properties,里面添加下面的配置信息:
##设置标签类型 两种:[] 和 <> 。[] 这种标记解析要快些tag_syntax=auto_detect\##如果变量为null,转化为空字符串,比如做比较的时候按照空字符做比较classic_compatible=true##去掉多余的空格whitespace_stripping=true##模版更新时间,这里配置是1秒更新一次,正式环境,模版不会改变,可以将这个值设很大,提高效率.#template_update_delay=3600template_update_delay=1##国际化设置,这里设置为中国locale=zh_CN##默认编码utf8default_encoding=utf-8##url编码utf8url_escaping_charset=utf-8##显示日期格式date_format=yyyy-MM-dd##显示时间格式time_format=HH:mm:Ss##显示日期和时间格式datetime_format=yyyy-MM-dd HH:mm:ss##数字显示格式hi.number_format=\#0.\#\#\#\#\###设置输出的字符集编码output_encoding=UTF-8
3.在spring-servlet.xml中添加Freemarker所需的配置,代码如下:
<!-- 第一中配置freeMarker视图解析器 方式,将配置信息写在 freemarker.properties 中 --> <!-- 设置freeMarker的配置文件路径 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:freemarker.properties"/> </bean> <!-- 配置freeMarker的模板路径 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="freemarkerSettings" ref="freemarkerConfiguration"/> <property name="templateLoaderPath"> <value>/WEB-INF/views/</value> </property> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> </map> </property> </bean> <!-- 配置freeMarker视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/> <property name="contentType" value="text/html; charset=utf-8"/> <property name="cache" value="false"/> <property name = "suffix" value = ".ftl"></property> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> <property name="exposeSpringMacroHelpers" value="true" /> <property name="order" value="0"/> </bean> <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" /> <!-- 第二种配置freeMarker视图解析器 方式,直接将配置文件写在 spring-mvc.xml 中 --> <!--<bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/> <property name="contentType" value="text/html; charset=UTF-8"/> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> <property name="exposeSpringMacroHelpers" value="true" /> <property name="cache" value="true" /> <property name="suffix" value=".ftl" /> <property name="order" value="0"/> </bean> <!– 配置freeMarker的模板路径 –> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/views/"/> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> </map> </property> <property name="defaultEncoding" value="UTF-8"/> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">3600</prop> <prop key="locale">zh_CN</prop> <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> <prop key="date_format">yyyy-MM-dd</prop> <prop key="number_format">#.##</prop> </props> </property> </bean> <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>-->
4. 编写controller文件和 .ftl文件
在整合SSM三大框架时设置扫描的对应controller 类中新增访问方法:
@RequestMapping("/helloWorld") public String helloWorld(Model model) { String word0 = "Hello "; String word1 = "World!"; //将数据添加到视图容器中 model.addAttribute("title","ftl模板页面"); model.addAttribute("word0",word0); model.addAttribute("word1",word1); return "helloWorld"; }
在 WEB-INF 下的 views 文件夹中,没有就创建一个(如果名字不同,在spring-mvc.xml 配置文件对应的文件夹名称也要更改),新建一个 helloWorld.ftl 文件,里面添加如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>${title}</title></head><body><h2>${word0}${word1}</h2></body></html>
5.调试运行
所有的配置好后,就可以启动项目,访问 helloWorld.do (格式:IP:端口/项目名称/helloWorld) 进行测试
- Java SSM 整合 freemarker
- 《SSM框架实战》 整合 Freemarker
- Java ssm整合swagger
- java ssm整合echarts
- FreeMarker与Spring框架及SSM的整合过程
- FreeMarker与Spring框架及SSM的整合过程
- 在celipse上搭建ssm框架,并整合freemarker
- Java ssm+Maven框架整合
- java SSM和vue整合
- 使用纯Java整合SpringMVC、freemarker
- java 整合redis缓存 SSM 后台框架
- springmvc SSM java redis shiro ehcache 整合
- SSM框架整合实例,附java代码。
- SSM整合
- SSM整合
- SSM整合
- ssm整合
- SSM整合
- marquee插件水平滚动字幕循环滚动
- Android 通知消息水平播放、无限循环效果实现
- hdu 6146 Pokémon GO(DP)
- [jzoj4197]兔子走路
- 【Hibernate】的一对多与多对一映射
- Java SSM 整合 freemarker
- Android数据存储(一)---SharedPreferences
- 制作ubuntu烧录镜像
- 《文学理论》
- megaface测试流程
- POSIX多线程程序设计学习篇之六(线程属性)
- C++Primer Plus(第六版) 第十四章 第五题
- codeforces 744A
- JAVA new流程(实例化过程)