Java——Spring MVC整合Freemarker

SpringMVC默认使用JSP作为模板引擎,那么如何在SpringMVC中支持对Freemarker的支持了?

主要分为4步:

(1)pox.xml中引入依赖

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.28</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.2.8.RELEASE</version>
</dependency>

(2)启动Freemarker模板引擎

<bean id="ViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <!--设置响应输出,并解决中文乱码-->
    <property name="contentType" value="text/html;charset=utf-8"/>
    <!--指定Freemarker模板文件扩展名-->
    <property name="suffix" value=".ftl"/>
</bean>

(3)配置Freemarker参数

<!--配置Freemarker参数-->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <!--设置模板保存的目录-->
    <property name="templateLoaderPath" value="/WEB-INF/ftl"/>
    <!--其他模板引擎设置-->
    <property name="freemarkerSettings">
        <props>
            <!--设置Freemarker脚本与数据渲染时使用的字符集-->
            <prop key="defaultEncoding">UTF-8</prop>
        </props>
    </property>
</bean>

(4)简单示例

@Controller
@RequestMapping("/fm")
public class FreemarkerController {
    @GetMapping("/t")
    public ModelAndView showTest(){
        ModelAndView mav = new ModelAndView("/test");  //因为配置了扩展名,所以不需要写完整名
        UserInfo userInfo = new UserInfo();
        userInfo.setName("kebi");
        mav.addObject("u",userInfo);
        return mav;
    }
}

创建文件目录:

 编辑test.ftl文件:
<h1>${u.name}</h1>

注意在运行前需要将新的依赖包添加到Tomcat里面:

 访问:

猜你喜欢

转载自www.cnblogs.com/yangmingxianshen/p/12521568.html