開發環境:
System:Windows
WebBrowser:IE6+、Firefox3+
JavaEE Server:tomcat5.0.2.8、tomcat6
IDE:eclipse、MyEclipse 8
開發依賴庫:
JavaEE5、Spring 3.0.0.M4、FreeMarker 2.3.16
Email:hoojo_@126.com
Blog: http://blog.csdn.net/IBM_hoojo
?
1、 新建WebProject,工程名稱是SpringFreemarker;然后手動添加jar包,需要的jar包如下:
SpringFramework jar包下載地址:
FreeMarker library下載地址:
當然你也可以去官方下載
2、 在web.xml中添加如下配置:
<!-- 加載Spring容器配置 -->
< listener >
< listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >
</ listener >
<!-- 設置Spring容器加載配置文件路徑 -->
< context-param >
< param-name > contextConfigLocation </ param-name >
< param-value > classpath*:applicationContext-*.xml </ param-value >
</ context-param >
?
< servlet >
< servlet-name > dispatcher </ servlet-name >
< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
< init-param >
< param-name > contextConfigLocation </ param-name >
< param-value > /WEB-INF/dispatcher.xml </ param-value >
</ init-param >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
?
< servlet-mapping >
< servlet-name > dispatcher </ servlet-name >
< url-pattern > *.do </ url-pattern >
</ servlet-mapping >
上面分別是添加Spring的監聽器、以及配置Spring的配置文件、還有SpringMVC的控制器;
3、 在WEB-INF中添加文件dispatcher.xml,和web.xml中的對應。內容如下:
<? xml version ="1.0" encoding ="UTF-8" ? >
< beans xmlns ="http://www.springframework.org/schema/beans"
xmlns:mvc ="http://www.springframework.org/schema/mvc" xmlns:context ="http://www.springframework.org/schema/context"
xmlns:util ="http://www.springframework.org/schema/util" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://www.springframework.org/schema/beans >
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd"
?
< context:component-scan base-package ="com.hoo" />
?
<!-- annotation的方法映射適配器
<bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
-->
<!-- annotation默認的方法映射適配器 -->
< bean id ="handlerMapping" class ="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
< bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name ="viewClass" value ="org.springframework.web.servlet.view.JstlView" />
</ bean >
</ beans >
?
上面是SpringMVC的基本配置
4、 在src中添加applicationContext-beans.xml,內容如下:
<? xml version ="1.0" encoding ="UTF-8" ? >
< beans xmlns ="http://www.springframework.org/schema/beans"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop ="http://www.springframework.org/schema/aop"
xmlns:tx ="http://www.springframework.org/schema/tx"
xmlns:util ="http://www.springframework.org/schema/util"
xmlns:context ="http://www.springframework.org/schema/context"
xsi:schemaLocation ="http://www.springframework.org/schema/beans >
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
</ beans >
里面可以添加一些bean的配置
5、 在src目錄添加freemarker.properties配置文件,這個文件是freemarker一些常用的轉換,內容如下:
tag_syntax=auto_detect
template_update_delay=2
default_encoding=UTF-8
output_encoding=UTF-8
locale=zh_CN
date_format=yyyy-MM-dd
time_format=HH:mm:ss
datetime_format=yyyy-MM-dd HH:mm:ss
6、 在dispatcher.xml中添加freemarker的配置,配置如下:
<!-- 設置freeMarker的配置文件路徑 -->
< bean id ="freemarkerConfiguration" class ="org.springframework.beans.factory.config.PropertiesFactoryBean" >
< property name ="location" value ="classpath:freemarker.properties" />
</ bean >
?
<!-- 配置freeMarker的模板路徑 -->
< bean id ="freemarkerConfig" class ="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" >
<!--property name="freemarkerSettings" ref="freemarkerConfiguration"/-->
< property name ="templateLoaderPath" >
< value > /WEB-INF/ftl/ </ value >
</ property >
< property name ="freemarkerVariables" >
< map >
< entry key ="xml_escape" value-ref ="fmXmlEscape" />
</ map >
</ property >
</ bean >
?
< bean id ="fmXmlEscape" class ="freemarker.template.utility.XmlEscape" />
?
<!-- 配置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 ="viewNames" value ="*.ftl" />
< property name ="contentType" value ="text/html; charset=utf-8" />
< property name ="cache" value ="true" />
< property name ="prefix" value ="" />
< property name ="suffix" value ="" />
< property name ="order" value ="2" />
</ bean >
上面最關鍵的就是freeMarker的視圖解析器viewResolver的配置,viewClass是使用哪個視圖解析器,這里是類路徑;其他的和jsp的視圖解析器都很類似。
7、 下面在WEB-INF中添加2個ftl模板,在WEB-INF添加ftl,然后添加hello.ftl/hi.ftl,內容分別是:
hello.ftl
< html >
< body >
< h1 > say hello ${name} </ h1 >< br />
${(1 == 1)?string("yes", "no")}
</ body >
</ html >
hi.ftl
< html >
< body >
< h1 > say hello ${name} </ h1 >< br />
${(1 != 1)?string("yes", "no")}
</ body >
</ html >
8、 添加Controller控制器,代碼如下:
package
com.hoo.controller;
?
import
org.springframework.stereotype.Controller;
import
org.springframework.ui.ModelMap;
import
org.springframework.web.bind.annotation.RequestMapping;
?
/**
* <b>function:</b> FreeMarker示例控制器
* @author hoojo
* @createDate 2011-3-3 下午04:50:10
* @file HelloWorldController.java
* @package com.hoo.controller
* @project SpringFreemarker
* @version 1.0
*/
@Controller
@RequestMapping(
"/freeMarker"
)
public class HelloWorldController {
@RequestMapping(
"/hello"
)
public
String sayHello(ModelMap map) {
System.out.println(
"say Hello ……"
);
map.addAttribute( "name" , " World!" );
return "/hello.ftl" ;
}
@RequestMapping(
"/hi"
)
public
String sayHi(ModelMap map) {
System.out.println(
"say hi ……"
);
map.put( "name" , "jojo" );
return "/hi.ftl" ;
}
@RequestMapping(
"/jsp"
)
public
String jspRequest(ModelMap map) {
System.out.println(
"jspRequest ……"
);
map.put( "name" , "jsp" );
return "/temp.jsp" ;
}
}
9、 添加index.jsp的測試鏈接或temp.jsp的內容:
index.jsp
< body >
< a href ="freeMarker/hello.do" > say hello </ a >< br />
< a href ="freeMarker/hi.do" > say hi </ a >< br />
< a href ="freeMarker/jsp.do" > jspRequest </ a >
</ body >
temp.jsp
< body >
< h3 > ${name } </ h3 >
</ body >
如果運行無錯誤,并輸出正確的結果就整合成功!~.~
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
