首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

FreeMarker调整Spring 3.0

2012-07-20 
FreeMarker整合Spring 3.0开发环境:?System:Windows?WebBrowser:IE6+、Firefox3+?JavaEE Server:tomcat5.0.

FreeMarker整合Spring 3.0

开发环境:

?

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

?

http://hoojo.cnblogs.com/

?

?

?

1、 新建WebProject,工程名称是SpringFreemarker;然后手动添加jar包,需要的jar包如下:

?

FreeMarker调整Spring 3.0

?

SpringFramework jar包下载地址:

?

http://ebr.springsource.com/repository/app/library/version/detail?name=org.springframework.spring&version=3.0.5.RELEASE

?

FreeMarker library下载地址:

?

http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.freemarker&version=2.3.15

?

当然你也可以去官方下载

?

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" 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>

?

如果运行无错误,并输出正确的结果就整合成功!~.~

版权所有,转载请注明出处本文出自:http://www.cnblogs.com/hoojo/archive/2011/04/19/2020551.html

热点排行