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;
        }
    }
  • 相关阅读:
    .Net控件创建热键
    .Net字符串处理
    C++ 中通过函数名字的字符串调用函数
    将.Net应用程序依赖的库文件部署到其他目录下
    VS2012生成事件
    visual studio导出项目模板
    .Net Program Unable to copy a file from objDebug to binDebug
    VBA引用.Net类库
    .Net 自定义事件
    VB.Net 解决winForm界面卡死
  • 原文地址:https://www.cnblogs.com/sbj-dawn/p/7841478.html
Copyright © 2011-2022 走看看