spring mvc基础篇(八):映射处理器之FreeMarker模板技术
8.1 FreeMarker简介
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
8.2 开发环境
开发工具:myeclipse8.6.1
数据库:mysql5.5.23
服务器: tomcat6.0.37
框架版本: spring3.2.2
8.3 案例开发步骤
步骤一:在myeclipse8.6中新建web工程springmvc08,拷贝如下包到lib目下:
注意新增的包。
步骤二:编写web.xml 配置文件,代码如下:
=================================web.xml========================
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appversion="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 配置spring的字符集过滤 -->
<filter>
<filter-name>encode</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>encode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
================================================================
步骤三:建立index.jsp,如下所示:
=========================index.jsp==============================
<body>
<h1><ahref="FreeMaker.do">freemaker示例:</a></h1>
</body>
=====================================================================
步骤四:在com.wx.controls包下面编写控制器FreeMarkerController.java,如下:
==================FreeMarkerController.java==========================
public
class FreeMarkerControllerextendsAbstractCommandController {
protected ModelAndView handleRequestInternal(
HttpServletRequest reqeust,HttpServletResponse response)
throws Exception {
//视图解析器会根据base名称去找base.ftl的模板
ModelAndView mav = new ModelAndView("base");
mav.addObject("username","张三");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
mav.addObject("time", sdf.format(new Date()));
return mav;
}
//该方法无实际作用,但必须要实现它
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse response, Object command,BindException errors)
throws Exception {
return null;
}
}
==================================================================
步骤五:在核心配置文件springmvc-servlet.xml里面完善如下配置
======================== springmvc-servlet.xml=======================
<beans>
<!--指明模板文件的默认编码及位置-->
<beanid="freemarkerConfig"
class="org.springframework.web.servlet
.view.freemarker.FreeMarkerConfigurer">
<propertyname="defaultEncoding"value="UTF-8"/>
<propertyname="templateLoaderPath"value="/freemarker/"/>
</bean>
<!—freemarker视图解析器,指明生成页面的内容编码,
是否应用缓存,以及前缀后缀等-->
<beanid="fmViewResolver"
class="org.springframework.web.servlet
.view.freemarker.FreeMarkerViewResolver">
<propertyname="contentType"value="text/html;charset=utf-8"/>
<propertyname="cache"value="false"/>
<propertyname="prefix"value=""/>
<propertyname="suffix"value=".ftl"/>
</bean>
<beanid="simpleUrlMapping"
class="org.springframework.web.servlet
.handler.SimpleUrlHandlerMapping">
<propertyname="mappings">
<props>
<propkey="/FreeMaker.do">freeControl</prop>
</props>
</property>
</bean>
<beanid="freeControl"class="com.wx.controls.FreeMarkerController">
</bean>
</beans> ====================================================================
步骤六:在webroot目录下建立模板文件base.ftl,如图所示:
模板页面内容如下:
=====================base.ftl====================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>freemaker示例</title>
<meta http-equiv="pragma"content="no-cache">
<meta http-equiv="cache-control"content="no-cache">
<meta http-equiv="expires"content="0">
</head>
<body>
欢迎来到FreeMarker模板页面<br/>
welcome${username}<br/>
当前时间:${time}
</body>
</html>
==================================================================
步骤七: 启动tomcat,发布项目,在地址栏输入 http://localhost:8080/springmvc08/index.jsp 进行测试,得到结果:
联系作者