[freemarker篇]02.生成HTML的静态页面

昨天完成了一部分的今天在上次的基础上,完成完成生成HTML静态页面的操作,中间会涉及一点标签的简单使用。今天的代码有一丢丢的对付的感觉!抱歉了,直接就上代码吧!求原谅!

项目结构目录如下:

第一步,新建一个类com.shxt.model.User

package com.shxt.model;

public class User {

    private String account;
    private Integer age;

    public User() {
    }
    public User(String account, Integer age) {
        this.account = account;
        this.age = age;
    }

    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }

}

第二步,在FreemarkerUtils中新建一个方法,这个方法就不过多的介绍了,很简单的!

/**
     * 到处HTML静态文件
     * @param name
     * @param root
     * @param outFile
     */
    public void exportHtml(String name,Map<String, Object> root,String outFile){
        FileWriter out = null;
        try {
            out = new FileWriter("D:\\temp\\"+outFile);
            //通过Template可以将模版文件输出到相应的文件流
            Template template = this.getTemplate(name);
            template.process(root, out);//在控制台输出内容
        } catch (TemplateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(out!=null)
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }

    }

这里需要注意的是,我目前的输出地址为绝对路径,这里只是学习使用

第三步,测试数据项

@Test
    public void exportHtml() {
        // 1.创建数据模型
        Map<String, Object> root = new HashMap<String, Object>();
        // 2.赋值
        root.put("user_name", "胖先生");
        //传递数据之一个对象
        root.put("user", new User("四胖子",18));
        //传递一个结合显示
        List<User> userList = Arrays.asList(new User("1号胖子",19),new User("2号胖子",30),new User("3号胖子",50));
        root.put("userList", userList);
        // 3.生成HTML文件
        fu.exportHtml("demo02.ftl", root, "哈哈.html");
    }

第四步,建立ftl包下建立demo02.ftl文件,代码如下

<!DOCTYPE html>
<html>
  <head>
    <title>生成静态的HTML代码</title>
   <meta charset="UTF-8">
  </head>

  <body>
    <h1>你好:${user_name}</h1>
    <hr/>
    <h2>对象数据:${user.account}----${user.age}</h2>
    <#if user.age lt 17>
            你为成年
      <#else>你成年了
    </#if>
    <hr/>

    <h2>遍历数据</h2>
    <#list userList as user>
        <#-- 我是注释:如何现实行号 -->
        ${user_index+1} ---- ${user.account}----${user.age}
        <#if !user_has_next>
                    共有${userList?size}最后一个用户是:${user.account}
        </#if>
        <br/>
    </#list>

  </body>
</html>

第五步,运行一下测试类,结果如下

需要你们的支持,才是胖先生的动力,我会坚持!我的务实希望能让你们有所收获

时间: 2024-10-01 05:05:44

[freemarker篇]02.生成HTML的静态页面的相关文章

通过ASP生成html纯静态页面的简单示例

本站收录这篇文章通过ASP生成html纯静态页面的简单示例,详细解说文章中相关静态 asp 技术与知识,欢迎能给大家一些在这方面的支持和帮助!下面是详细内容: 原理:通过浏览器传送变量,如 http://127.0.0.1/shengcheng.asp?id=90 代码:if SaveFile("/new/"&id&".html","http://127.0.0.1/news.asp?id="&id&"&

浅谈php生成静态页面

一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权限限制等,但是,对应一些我们经常频频使用的文件,比方说,开发的新闻发布系统,我们不希望很多用户都读取数据库才显示结果,这样一方面消耗了服务器的资源,另一方面占去了浏览者大量可贵的响应时间,所有,有了"静态页面话"的做法,当前很多网站都采用这种技术,一般都是由管理后台控制,或者生成html直

如何生成静态页面的五种方案

方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string getUrltoHtml(string Url) { errorMsg = ""; try { System.Net.WebReq

.net 生成 静态页面

.net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespace=System.IO %> <script runat="server"> protected override void OnInit (EventArgs e) { int id; try { id = int.Parse (Request.QueryString[

ASP.NET生成静态页面方法大全

方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string getUrltoHtml(string Url) { errorMsg = ""; try { System.Net.WebReq

Freemarker生成HTML静态页面

这段时间的工作是做一个网址导航的项目,面向用户的就是一个首页,于是就想到了使用freemarker这个模板引擎来对首页静态化. 之前是用jsp实现,为了避免用户每次打开页面都查询一次数据库,所以使用了jsp的内置对象application,在Controller中将数据都查询出来, 然后放入application,最后在JSP页面使用jstl标签配合EL表达式 将数据遍历出来.这样做是从一定程度上减轻了服务器的压力和页面的响应速度, 但是仍然没有静态页面响应快. 使用Freemarker步骤:

使用freemarker生成静态页面

一 说明 需要在spring mvc项目中加入下列包: <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>${freemarker.version}</version> </dependency> 如果你还想使用freemarker实现表现层,那么还需要导入下列包: <de

PHP代码为什么不能直接保存HTML文件——&gt;PHP生成静态页面教程

1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件,这样反而会降低运行效率. 3.如果是需要PHP控制HTML代码的输出,比如需要PHP判断用户是否登陆,如果登陆则输出A,未登录则输出B.这就需要PHP来进行控制了.HTML不能实现这样的功能 PHP生成静态页面教程 ,一些基本的概念 一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可

html模板生成静态页面及模板分页处理

它只让你修改页面的某一部分,当然这“某一部分”是由你来确定的.美工先做好一个页面,然后我们把这个页面当作模板(要注意的是这个模板就没必要使用EditRegion3这样的代码了,这种代码是Dreamwerver为了方便自己设计而弄的标识),把这个模板中我们需要改变的地方用一个与HTML可以区分的字符代替,如“{title}”.“[title]”.在生成静态页面的时候只需要把数据和这些字符串替换即可.这就是模板的含义了. 新建一个php页面和一个html页面[模板页];注:如果是从数据库调用数据,则