【学习】springMVC+freemarker整合

在springMVC的项目中,加入freemarker

1、首先导入springMVC-webmvc所需的JAR包。
(若用maven的话,如下)

<dependency>
<groupId>org.springfremework</groupId>
<artifactId>spring-webmvc<artifactId>
<version>3.2.3.RELEASE</version>
</dependency>


2、配置web.xml(启动mvc框架)

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>


[b]相应的xml配置命令规则为:【servlet名字】-servlet.xml,(如本文为:spring-servlet.xml),默认目录和web.xml放一起,即WEB-INF目录下。[/b]

3、配置spring-servlet.xml(****重要****)
在spring-servlet文件中加入:(annotation以及包扫描范围已略。)
关于freemarker模版的配置,可以直接在xml里配,也可以用properties文件配。

<!-- 设置freeMarker的配置文件路径 -->
<bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:conf/freemarker.properties"/>
</bean>

<!-- 配置freeMarker的模板路径 -->
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="freemarkerSettings" ref="freemarkerConfiguration"/>
<property name="templateLoaderPath">
<value>/WEB-INF/ftl/</value>
</property>
</bean>

<!-- 配置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="contentType" value="text/html; charset=utf-8"/>
<property name="cache" value="true"/>
</bean>


4、新建文件:freemarker.properties,放conf目录下

#设置标签类型:square_bracket:[] auto_detect:[]<>
tag_syntax=auto_detect
#模版缓存时间,单位:秒
template_update_delay=0
default_encoding=UTF-8
output_encoding=UTF-8
locale=zh_CN
#设置数字格式 ,防止出现 000.00
number_format=\#
#变量为空时,不会报错
classic_compatible=true
#这个表示每个freemarker的视图页面都会自动引入这个ftl文件。里面定议的就是一些宏,如text文本框,各种form元素
#auto_import="/WEB-INF/templates/index.ftl" as do


这个模版属性是比较基本的定义,[b]其中比较重要的是最后一条:auto_import="/WEB-INF/templates/index.ftl" as do,这个表示每个freemarker的视图页面都会自动引入这个ftl文件。里面定议的就是一些宏,如text文本框,各种form元素[/b](本文没作深入研究。)

5、后台新建测试Control类:FreemarkerController

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class FreemarkerController {

@RequestMapping("/hi")
public String sayHello(ModelMap map){
System.out.println("say hi ……");

map.put("name", "kimi");

return "/hi.ftl";
}

}

6、前台新建测试页:hi.ftl(放WEB-INF/ftl目录下)
[code="java"]
<html>
<body>
<h1>holle world ${name}</h1><br/>
1 + 1 = 3? ${(1 != 1)?string("yes", "no")}
</body>
</html>

[/code]

7、启动项目。
[color=red]发现报错:Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfigurationFactory[/color]

少了jar包,再导入spring-context-support-3.2.3.RELEASE包即可。
maven:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>


再次启动,没有错,访问项目后,网页内容如下:
[img]http://dl.iteye.com/upload/picture/pic/128569/f37d357e-90aa-3e85-8030-0e2b563eb89b.jpg[/img]

------------------------------------------
参考资料:
[url]http://www.360doc.com/content/12/0809/13/4280915_229198282.shtml[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值