• 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;
        }
    }
  • 相关阅读:
    (黑马十次方项目day06)@ConfigurationProperties报错的解决方式
    (黑马十次方项目day04)An attempt was made to call a method that does not exist. The attempt was made from the following location:
    (黑马十次方项目day02)使用map接收form表单的参数
    (黑马十次方项目day02)IDEA在方法之间添加分隔符及开启Run Dashboard管理
    (黑马十次方项目day01)spring-boot-starter-parent 包maven依赖报错
    (黑马十次方项目day01)从PDF文件中复制代码到pom文件中project报错
    ER图学习
    java 8 函数式库Vavr功能
    Guava Cache
    UML学习
  • 原文地址:https://www.cnblogs.com/sbj-dawn/p/7841478.html
Copyright © 2020-2023  润新知