開發環境:
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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

