• freemaker学习记录


    为什么突然要学这个呢。因为看到知乎上一个笑话(作者justjavac):

    朋友介绍的。有一年 Java 经验,来了先试用吧。当时有一个海事局的项目需要做个页面,显示监测数据。虽然东南沿海 24 个基站每秒有几个 G 的数据,但是数据我已经处理好了,只需要页面显示。
    于是交给他了。
    “来,你用 JSP 做个简单页面,包括登陆和数据显示。”
    “JSP 我不会。之前直接学的 SSH。”
    当时我心里就打鼓了,“那就用 SSH 做吧”。
    
    果然,一直到下班,连个登录都没做出来。
    “这个有那么难吗?你之前的项目都是怎么做的啊?”
    “我之前做的都是大项目,没做过这么小的。”

    事实上,虽然一直在用java做服务端开发,但是由于分工,最前也只做到提供External接口为止,前端则是分离独立开发部署的。

    如果做一个小东西也来这套前后端分离就太折腾了,于是打算补一下jsp,然后所幸偷懒到底用springboot了。 =_=|| 


    内容来自:http://freemarker.foofun.cn/dgui_quickstart_basics.html

    数据模型

     数据模型与Java的POJO对象对应。可以当为空时给出默认值,使用方法如:${user!"visitor"},${latestProduct.url},

    (root)
      |
      +- user = "Big Joe"
      |
      +- latestProduct
          |
          +- url = "products/greenmouse.html"
          |
          +- name = "green mouse"

    还可以使用map和list这样的数据结构 如animals[0].name, misc.fruits[0]

    (root)
      |
      +- animals
      |   |
      |   +- (1st)
      |   |   |
      |   |   +- name = "mouse"
      |   |   |
      |   |   +- size = "small"
      |   |   |
      |   |   +- price = 50
      |   |
      |   +- (2nd)
      |   |   |
      |   |   +- name = "elephant"
      |   |   |
      |   |   +- size = "large"
      |   |   |
      |   |   +- price = 5000
      |   |
      |   +- (3rd)
      |       |
      |       +- name = "python"
      |       |
      |       +- size = "medium"
      |       |
      |       +- price = 4999
      |
      +- misc
          |
          +- fruits
              |
              +- (1st) = "orange"
              |
              +- (2nd) = "banana"

    指令

    if指令

    <h1>
      如果不为空..
      <#if user??><h1>Welcome ${user}!</h1></#if>
    <#if animals.python.price == animals.elephant.price> Pythons are cheaper than elephants today. <#else> Pythons are not cheaper than elephants today. </#if> </h1>

    list指令,数据结构见上文。

    <table border=1>
      <#list animals as animal>
        <tr><td>${animal.name}<td>${animal.price} Euros
      </#list>
    </table>

    上面的写法,当list为空时,会输出一个空的table,为了避免,可以如下写法:

    <#list animals>
      <ul>
        <#items as animal>
          <li>${animal}
        </#items>
      </ul>
    </#list>
    <p>Fruits: <#list misc.fruits as fruit>${fruit}<#sep>, <#else>None</#list>

    使用分隔符,可以使用<#sep>,处理空list时可以使用<#else>处理,联合使用如下:

    <#list misc.fruits>
      <p>Fruits:
      <ul>
        <#items as fruit>
          <li>${fruit}<#sep> and</#sep>
        </#items>
      </ul>
    <#else>
      <p>We have no fruits.
    </#list>

    include 指令

    如<#include "/copyright_footer.html">

    内建函数

    user?html 给出 user 的HTML转义版本, 比如 & 会由 &amp; 来代替。

    fruits?join(", ") 通过连接所有项,将列表转换为字符串, 在每个项之间插入参数分隔符(比如 "orange,banana")

  • 相关阅读:
    9月22日 又上锁妖塔
    1396. 【2014年鄞州区】挖掘机(d.pas/c/cpp)
    栓奶牛——二分解法
    P6188 [NOI Online 入门组]文具订购 题解
    HDC.Cloud | 基于IoT Studio自助生成10万行代码的奥秘
    华为云API Explorer开发者生态平台正式上线
    【华为云技术分享】揭秘华为云DLI背后的核心计算引擎
    【华为云技术分享】ARM体系结构基础(2)
    【华为云技术分享】HDC.Cloud | 以数字资产模型为核心驱动的一站式IoT数据分析实践
    【华为云技术分享】数据赋能,如何精细化保障企业大数据安全
  • 原文地址:https://www.cnblogs.com/kuracola/p/7483591.html
Copyright © 2020-2023  润新知