• FreeMarker整合Spring 3


    开发环境:

    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包如下:

    clip_image002

    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" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
        -->
        <!--  annotation默认的方法映射适配器 -->
        <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
        
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        </bean>
         
    </beans>
     

    上面是SpringMVC的基本配置

    4、 在src中添加applicationContext-beans.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx" 
        xmlns:util="http://www.springframework.org/schema/util"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans >
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd"
    </beans>

    里面可以添加一些bean的配置

    5、 在src目录添加freemarker.properties配置文件,这个文件是freemarker一些常用的转换,内容如下:

    tag_syntax=auto_detect
    template_update_delay=2
    default_encoding=UTF-8
    output_encoding=UTF-8
    locale=zh_CN
    date_format=yyyy-MM-dd
    time_format=HH:mm:ss
    datetime_format=yyyy-MM-dd HH:mm:ss

    6、 在dispatcher.xml中添加freemarker的配置,配置如下:

    <!-- 设置freeMarker的配置文件路径 -->
    <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="location" value="classpath:freemarker.properties"/>
    </bean>
     
    <!-- 配置freeMarker的模板路径 -->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <!--property name="freemarkerSettings" 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>

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

  • 相关阅读:
    git线上操作
    IDEA快捷方式
    Java 四种线程池
    java 获取当前天之后或之前7天日期
    如何理解AWS 网络,如何创建一个多层安全网络架构
    申请 Let's Encrypt 通配符 HTTPS 证书
    GCE 部署 ELK 7.1可视化分析 nginx
    使用 bash 脚本把 AWS EC2 数据备份到 S3
    使用 bash 脚本把 GCE 的数据备份到 GCS
    nginx 配置 https 并强制跳转(lnmp一键安装包)
  • 原文地址:https://www.cnblogs.com/zhaofei/p/3322646.html
Copyright © 2020-2023  润新知