热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

页面静态化技术

在eclipse中点击Window,选择Reference,弹出如下框找到:General --Editors --FileAssociations如下:如果有*.ftl文件,


  1. 在eclipse中点击Window,选择Reference,弹出如下框

  2. 找到:General --> Editors --> File Associations

如下:如果有*.ftl文件,就不用点击上面的Add。如果没有,就点击Add新建

 

 

 



  1. 然后点击此页面下面的Add按钮:

 

 

 

 

 

 



  1. 然后选择General--Content Types: 

  2.  

     编程步骤,这里我们写一个工具类方便我们使用




  3. package cn.jiedada.util;
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.io.Writer;
    import java.util.UUID;
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    public class FreeMakerUtil {
    /**
    * @param templatePath--ftl文件父目录路径
    * @param templateName--ftl文件名称
    * @param object --传入的数据
    * @param suffix --文件后缀
    * @return
    */
    public static String createFile(String templatePath,String templateName,Object data,String suffix) {
    //创建一个配置对象
    Configuration cOnf= new Configuration(Configuration.VERSION_2_3_28);
    Writer pw = null;
    String htmluri=null;
    try {
    //创建父目录文件
    File file = new File(templatePath);
    //设置默认template文件路径及字符集
    conf.setDirectoryForTemplateLoading(file);
    conf.setDefaultEncoding("UTF-8");
    //创建template
    Template template = conf.getTemplate(templateName);
    //设置新的名字
    String uuid=UUID.randomUUID().toString().replace("-", "");
    htmluri = uuid+suffix;
    //设置输出路径
    pw =new PrintWriter(new File(file,htmluri));
    template.process(data, pw );
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally {
    if(pw!=null){
    try {
    pw.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    return htmluri;
    }
    }
    View Code

     传入的data只能为map或者实体类



  4. map和实体类的遍历

  5. 实体类直接使用字段名

  6. 多个实体的list对象添加到map中的遍历






  7. //传入的map中的数据as为我们的单条数据
    <#list list as l>
    城市:${l.cname }
    城市级别
    <#if l.id lt 10>
    一线城市
    <#elseif l.id lt 21>
    二线城市
    <#else>
    三线城市



     在项目中我们需要做的事情,因为我们的删除和更新都存入了html的地址所以我们需要在修改和删除的时候同时删除数据



  8. 这里为修改

  9. @RequestMapping("/modify")
    public String modify(Jobs jobs,HttpServletRequest req){
    //先删除url在修改
    String realPath = req.getServletContext().getRealPath("/freemakser");
    File file = new File(realPath,jobs.getHtmlurl());
    if(file.exists()){
    file.delete();
    }
    service.modify(jobs);
    return "forward:page";
    }

     这里为删除




  10. @RequestMapping("/del")
    public String delete(Integer id,String htmlurl,HttpServletRequest req){
    service.del(id);
    String realPath = req.getServletContext().getRealPath("/freemakser");
    File file = new File(realPath,htmlurl);
    if(file.exists()){
    file.delete();
    }
    return "forward:page";
    }
    View Code

     service中的修改为




  11. @Override
    public void modify(Jobs jobs) {
    String templatePath = "F:\\JAVAEE\\2019_09_11_cms4\\src\\main\\webapp\\freemakser";
    String templateName ="join_us_details.ftl";
    String htmlurl = FreeMakerUtil.createFile(templatePath, templateName, jobs, ".html");
    jobs.setHtmlurl(htmlurl);
    dao.modify(jobs);
    }
    @Override
    public void add(Jobs jobs) {
    String templatePath = "F:\\JAVAEE\\2019_09_11_cms4\\src\\main\\webapp\\freemakser";
    String templateName ="join_us_details.ftl";
    String htmlurl = FreeMakerUtil.createFile(templatePath, templateName, jobs, ".html");
    jobs.setHtmlurl(htmlurl);
    dao.add(jobs);
    }
    View Code

     



 



推荐阅读
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • Exploring issues and solutions when defining multiple Faust agents programmatically. ... [详细]
  • 本文详细探讨了编程中的命名空间与作用域概念,包括其定义、类型以及在不同上下文中的应用。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • Python Selenium WebDriver 浏览器驱动详解与实践
    本文详细介绍了如何使用Python结合Selenium和unittest构建自动化测试框架,重点解析了WebDriver浏览器驱动的配置与使用方法,涵盖Chrome、Firefox、IE/Edge等主流浏览器。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • 使用 Babylon.js 实现地球模型与切片地图交互(第三部分)
    本文继续探讨在上一章节中构建的地球模型基础上,如何通过自定义的 `CameraEarthWheelControl` 类来实现更精细的地图缩放控制。我们将深入解析该类的实现细节,并展示其在实际项目中的应用。 ... [详细]
  • 我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]
  • 本文介绍了一种在 Android 开发中动态修改 strings.xml 文件中字符串值的有效方法。通过使用占位符,开发者可以在运行时根据需要填充具体的值,从而提高应用的灵活性和可维护性。 ... [详细]
  • HDU 2537 键盘输入处理
    题目描述了一个名叫Pirates的男孩想要开发一款键盘输入软件,遇到了大小写字母判断的问题。本文提供了该问题的解决方案及实现方法。 ... [详细]
  • UVa 11683: 激光雕刻技术解析
    自1958年发明以来,激光技术已在众多领域得到广泛应用,包括电子设备、医疗手术工具、武器等。本文将探讨如何使用激光技术进行材料雕刻,并通过编程解决一个具体的激光雕刻问题。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
author-avatar
antefigure850_495
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有