zoukankan      html  css  js  c++  java
  • Freemarker的配置与使用

    1.在pro.xml配置文件中引入架包

    <!--freemarker-->
      <dependency>
       <groupId>freemarker</groupId>
       <artifactId>freemarker</artifactId>
       <version>${freemarker-version}</version>
      </dependency>

    2.Freemarker的配置

    <?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:jdbc="http://www.springframework.org/schema/jdbc"  xmlns:context="http://www.springframework.org/schema/context"  xsi:schemaLocation="      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd      http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    
       <!-- 配置Freemarker -->    <bean id="staticPageService" class="cn.itcast.core.service.staticpage.StaticPageServiceImpl">      <property name="freeMarkerConfigurer">       <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">        <property name="templateLoaderPath" value="/WEB-INF/ftl/"/>        <property name="defaultEncoding" value="UTF-8"/>       </bean>      </property>    </bean>     </beans>
    View Code

    3.Freemarker静态化页面

    package cn.itcast.core.service.staticpage;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.util.Map;
    
    import javax.servlet.ServletContext;
    
    import org.springframework.web.context.ServletContextAware;
    import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
    
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    
    
    /**
     * 生成静态页实现类
     * @author lx
     *
     */
    public class StaticPageServiceImpl implements StaticPageService,ServletContextAware{
    
        private Configuration conf;
        
        public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
            this.conf = freeMarkerConfigurer.getConfiguration();
        }
    
    
        //静态化方法
        public void productIndex(Map<String,Object> root,Integer id){
            //String dir = "C:Userslxworkspaceabasport12";
            //设置模板的目录
            //conf.setDirectoryForTemplateLoading(dir);
            
            //输出流   从内存写出去  磁盘上
            Writer out = null;
            try {
                //读进来  UTF-8  内存中
                Template template = conf.getTemplate("productDetail.html");
                //获取Html的路径
                String path = getPath("/html/product/" + id +  ".html");//278.html
                
                File f = new File(path);
                File parentFile = f.getParentFile();
                if(!parentFile.exists()){
                    parentFile.mkdirs();
                }
                //输出流
                out = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
                //处理模板
                template.process(root, out);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(out != null){
                    try {
                        out.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
        //获取路径
        public String getPath(String name){
            return servletContext.getRealPath(name);
        }
    
        private ServletContext servletContext;
    
        @Override
        public void setServletContext(ServletContext servletContext) {
            this.servletContext = servletContext;
        }
    }
  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/sbj-dawn/p/7841478.html
Copyright © 2011-2022 走看看