0、需要一个已经配置好的springmvc项目,这里就不多费口舌了
1、引入jar包:maven,一说还需要引入spring-context-support包
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
2、springmvc的配置文件,原始文件修改
<!-- 定义文件的位置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="1"/><!-- 增加一个属性,如果找不到freemarker的模版则走原始的 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
3、springmvc的配置文件,新增加
<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 模版位置,这里配置了下面就不用配了 -->
<property name="templateLoaderPath" value="\WEB-INF\template" />
<property name="freemarkerSettings"><!-- 一些设置 -->
<props>
<prop key="template_update_delay">0</prop>
<prop key="default_encoding">UTF-8</prop>
<prop key="number_format">0.##########</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="classic_compatible">true</prop>
<prop key="template_exception_handler">ignore</prop>
</props>
</property>
</bean>
<!-- freeMarker视图解析器 -->
<bean id="freemarkerViewResolver"
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="suffix" value="" />
<!-- 作用百度即可
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
-->
<!-- 视图先走这个freemarker的,再走原始的 -->
<property name="order" value="0" />
</bean>
4、java代码:
@RequestMapping("freemarkerTest")
public String getFirstPage(Model model) {
model.addAttribute("test", "my name is freemarker");
return "hello.ftl";
}
5、在上面配置的/WEB-INF/template/目录下面新建hello.ftl文件。
ps:idea原生支持ftl文件,eclipse好像需要插件
格式什么的和jsp还挺像,网上随便一搜一大把
<html>
<head>
<title>Insert title here</title>
</head>
<body>
${test}
</body>
</html>
6、启动服务,localhost:8080/项目名/freemarkerTest 即可