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;
        }
    }
  • 相关阅读:
    [Swift通天遁地]七、数据与安全-(10)文件的加密压缩和解压加密压缩
    [Swift通天遁地]七、数据与安全-(9)文件的压缩和解压
    [Swift]LeetCode406. 根据身高重建队列 | Queue Reconstruction by Height
    [Swift]LeetCode403. 青蛙过河 | Frog Jump
    [Swift]LeetCode402. 移掉K位数字 | Remove K Digits
    [Swift]LeetCode399. 除法求值 | Evaluate Division
    [Swift通天遁地]七、数据与安全-(8)创建普通PDF文档和加密PDF文档
    Singleton单例模式
    Could not read from remote repository.
    Hadoop Web项目--Friend Find系统
  • 原文地址:https://www.cnblogs.com/sbj-dawn/p/7841478.html
Copyright © 2011-2022 走看看