第一个FreeMarker例子 FreeMarker与springMVC整合
本demo使用maven来完成
完成此demo需要以下八步
第一:eclipse安装freemarker插件
安装此插件方便我们编写 .ftl 等其他模版文件
第二:创建一个maven项目==》项目名:freemarker
请参考 CentOS7(Linux)下配置eclipse的maven和tomcat并且成功运行maven项目
创建好后的项目,最终如图所示
[caption id="attachment_996" align="alignnone" width="371"] 第一个FreeMarker项目[/caption]
第三:关于web.xml与我们之前创建的web.xml并无区别,我这里仍然贴出代码
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" metadata-complete="true" version="3.1"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>freemarker</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/freemarker-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>freemarker</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>第四:修改freemarker-servlet.xml
关键代码,加入以下代码,表示freemarker处理的模版后缀
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=UTF-8"></property> </bean>加入以下代码,SpringMVC自动扫描包
<!-- 通过扫描包的方式 --> <context:component-scan base-package="com.freemarker.springmvc.controller,com.freemarker.springmvc.service.impl" />第五:修改applicationContext.xml
加入FreeMarker的核心配置(部分配置)
<!-- Freemarker配置 --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/template/default/" /> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">0</prop> <prop key="default_encoding">UTF-8</prop> <prop key="number_format">0.##########</prop> <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> <prop key="classic_compatible">true</prop> <prop key="template_exception_handler">ignore</prop> <prop key="url_escaping_charset">UTF-8</prop> <prop key="locale">zh_CN</prop> <prop key="tag_syntax">auto_detect</prop> <prop key="whitespace_stripping">true</prop> <prop key="object_wrapper">freemarker.ext.beans.BeansWrapper</prop> </props> </property> </bean>
第六:编写一个Controller
@Controller @RequestMapping("/index") public class ConIndex { @Resource(name="indexTest") private IndexTest indexTest; @RequestMapping("/index") public String init(HttpServletRequest request, HttpServletResponse response,ModelMap model){ model.addAttribute("indexs", indexTest.index()); return "aaa/index"; } }
indexTest.index() 返回一个字符串“hello”
先创建目录aaa,因为我们的controller返回的是这个
在aaa下编写index.ftl(部分代码)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ${indexs}第八:启动我们的服务
输入以下地址测试
http://localhost:8080/freemarker/index/index
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情