简单整合freemarker+springmvc

一、引入pom依赖

<properties>
      <spring-version>4.3.14.RELEASE</spring-version>
  </properties>
  
  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.28</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring-version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring-version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
  </dependencies>

二、配置spring-mvc.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:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
        
        <mvc:annotation-driven/>
        <mvc:default-servlet-handler />
        <context:component-scan base-package="liuli.controller"></context:component-scan>
        <!-- freemarker的视图解析器 -->
        <bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            <!-- prefix  设置在构建URL时用于查看名称的前缀。 -->
            <property name="prefix" value=""></property>
            <!-- suffix  设置在构建URL时附加到视图名称的后缀。 -->
            <property name="suffix" value=".html"></property>
            <!-- contentType 为所有视图设置内容类型。 -->
            <property name="contentType" value="text/html;charset=UTF-8"></property>
            <!-- exposeSpringMacroHelpers 公开宏助手 -->
            <property name="exposeSpringMacroHelpers" value="true" />
            <!-- exposeRequestAttributes 公开请求属性 -->
            <property name="exposeRequestAttributes" value="true" />
            <!-- exposeRequestAttributes 公开会话属性 -->
            <property name="exposeSessionAttributes" value="true" />
            <!-- 
                requestContextAttribute 为所有视图设置RequestContext属性的名称。
                exposeRequestAttributes  exposeSessionAttributes两个属性都被设置为true。
                结果是请求和会话属性都被复制到模板的属性集中,可以使用FreeMarker的表达式语言来访问并显示。
                使用这些宏,必须设置FreeMarkerViewResolver的exposeSpringMacroHelpers属性为true。
             -->
        </bean>
        <!-- freemarker的配置文件 -->
        <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
            <!-- template加载路径 -->
            <property name="templateLoaderPath" value="/html/"></property>
            <!-- 默认编码 -->
            <property name="defaultEncoding" value="utf-8"></property>
            <property name="freemarkerSettings">
                <props>
                    <prop key="template_update_delay">10</prop>
                    <prop key="locale">zh_CN</prop>
                    <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                    <prop key="date_format">yyyy-MM-dd</prop>
                    <prop key="number_format">#.##</prop>
                </props>
            </property>
        </bean>
        <!-- 配置mvc -->
</beans>

三、controller层代码

package liuli.controller;

import javax.servlet.http.HttpServletRequest;

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

@Controller
public class MyHandler {
    
    @RequestMapping("/test")
    public String toIndexPage(HttpServletRequest request,String name){
        request.setAttribute("name", name);
        return "myindex";
    }

}

四、页面层代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>进来了...</title>
</head>
<body>
<h1>欢迎使用freemarker,${name}</h1>
</body>
</html>

五、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <!-- 配置springmvc -->
    <servlet>
         <servlet-name>springmvc</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <!-- 加载springmvc的配置文件 -->
         <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>classpath:spring-mvc.xml</param-value>
         </init-param>
         <!-- 设置tomcat启动就加载servlet -->
         <load-on-startup>0</load-on-startup>
     </servlet>
     <servlet-mapping>
         <servlet-name>springmvc</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
      
</web-app>

六、放入tomcat启动即可。

 

大功告成!

 

posted @ 2019-03-19 17:46  HWll  阅读(240)  评论(0编辑  收藏  举报