专栏首页强仔仔freemarker常见的一些用法(一)

freemarker常见的一些用法(一)

今天给大家介绍一下freemarker基本用法,例如:if、 list、 判断是否为空、获取值等等之类的。

在使用之前要先在模板中设置值,这里我使用的是SpringMVC中的设置值方法,下面看下案例:

 @RequestMapping(value = {"contentupdate"},method = RequestMethod.GET)
    public String contentUpdate(HttpServletRequest request,Map model){
        String id=request.getParameter("id");
        FloorContent floorContent=floorContentApi.getFloorContent(id);
        Floor floor=new Floor();
        model.put("contentName",floorContent.getName());
        Copys.create().from(floorContent.getFloor()).excludes("floor").to(floor);
        model.put("floorName",floor.getName());
        model.put("floorId",floor.getId());
        model.put("showIndex",floorContent.getShowIndex());
        List<Floor> list=floorApi.getList();
        model.put("list",list);
        model.put("type",floorContent.getType());
        model.put("contentImageUrl",floorContent.getContentImageUrl());
        model.put("linkUrl",floorContent.getLinkUrl());
        model.put("picSearchContent",floorContent.getPicSearchContent());
        model.put("id",floorContent.getId());
        System.out.println("json:"+Jsons.toJson(model));
        return "floorcontent/content-update";
    }

从例子中可以很明显的看出,只要在map中设置值就可以了,非常方便。

下面就介绍如何在html中取值操作:

  <#list list as floor>
      <#if floorId == floor.id>
          <option value="${floor.id}" selected="selected">${floor.name}</option>
       <#else>
            <option value="${floor.id}">${floor.name}</option>
        </#if>
  </#list>

这个例子可以很明显的看出:list表示循环、if表示判断、${字段名称}表示取值。

但是有一点需要注意的是如果想要判断是否为null则不能像java一样直接判断,freemarker有自己一套独特的判断方法。

我这里举一个应用的例子,不过这个例子只是判断是否为null的一种方法。

 <#if contentImageUrl?exists>
     <label for="" class="col-sm-2 control-label" style="margin-left: -20px;">图片路径:</label>            
  </#if>

如果大家想要了解判断不为空的其它方法,或者是如果为空要怎么赋初始值之类的方法,我在接下来的博客中会进行介绍。

如果大家想要源代码或者对文章有啥异议都可以加我QQ:208017534  欢迎打扰哦!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用JQuery实现顶部导航栏功能

    今天给大家介绍一下,如何利用JQuery实现顶部导航栏功能。其实原理很简单就是利用css和JQuery样式选择器实现的。 下面举个例子具体介绍一下如何这些功能,...

    林老师带你学编程
  • 【MYSQL坑】接口突然全部不行,原因竟然是它

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    林老师带你学编程
  • 微信支付之微信小程序支付

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/...

    林老师带你学编程
  • Markdown 的 React components

    https://github.com/EasySpringBoot/react-markdown

    一个会写诗的程序员
  • Android 中Context的使用方法详解

    Context字面意思是上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中...

    砸漏
  • 从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭

    在上一节中我们已经学会了如何创建一个 Activity 了。对于一个应用程序来说,肯定不可能只有一个 Activity。下面就来学习多个 Activity 是专...

    开发者
  • 自定义View,带你撸一个带加载功能的按钮

    介绍一个带加载功能的按钮控件的实现原理,加载动画来自于CircularProgressDrawable

    CCCruch
  • MapReduce之输出结果排序

      前面的案例中我们介绍了统计出每个用户的上行流量,下行流量及总流量,现在我们想要将输出的结果按照总流量倒序排序。

    用户4919348
  • MessagePack Java 0.6.X 可选字段

    https://www.cwiki.us/display/Serialization/QuickStart+For+MessagePack+Java+0.6.X

    HoneyMoose
  • LeetCode 174. 地下城游戏(DP)

    一些坏人抓住了公主(P)并将她关在了地下城的右下角。 地下城是由 M x N 个房间组成的二维网格。 我们英勇的骑士(K)最初被安置在左上角的房间里, 他...

    Michael阿明

扫码关注云+社区

领取腾讯云代金券