首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在freemarker页面获取长类型值的逗号

在FreeMarker页面中,获取长类型值的逗号可以通过以下方法实现:

  1. 使用Java代码将长类型值转换为字符串,并在字符串中添加逗号。
代码语言:java
复制
long longValue = 1234567890L;
String longString = String.valueOf(longValue);
String formattedLongString = "";
for (int i = 0; i< longString.length(); i++) {
    formattedLongString = longString.charAt(i) + formattedLongString;
    if (i > 0 && (longString.length() - i) % 3 == 0) {
        formattedLongString = "," + formattedLongString;
    }
}
  1. 将转换后的字符串传递给FreeMarker模板,并在模板中使用该字符串。
代码语言:freemarker
复制
<#-- 假设将转换后的字符串赋值给变量formattedLongValue -->
${formattedLongValue}
  1. 如果需要在FreeMarker模板中直接实现该功能,可以使用自定义的FreeMarker函数。
代码语言:java
复制
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModelException;

import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) throws IOException, TemplateException {
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_31);
        configuration.setClassForTemplateLoading(Main.class, "/");
        Template template = configuration.getTemplate("template.ftl");

        Map<String, Object> dataModel = new HashMap<>();
        dataModel.put("addCommas", new AddCommasMethod());
        dataModel.put("longValue", 1234567890L);

        StringWriter stringWriter = new StringWriter();
        template.process(dataModel, stringWriter);
        System.out.println(stringWriter.toString());
    }

    public static class AddCommasMethod implements freemarker.template.TemplateMethodModelEx {
        @Override
        public Object exec(List arguments) throws TemplateModelException {
            if (arguments.size() != 1) {
                throw new TemplateModelException("Wrong number of arguments");
            }
            if (!(arguments.get(0) instanceof Number)) {
                throw new TemplateModelException("Argument must be a number");
            }
            Number number = (Number) arguments.get(0);
            String numberString = String.valueOf(number);
            StringBuilder formattedNumberString = new StringBuilder();
            for (int i = 0; i< numberString.length(); i++) {
                formattedNumberString.insert(0, numberString.charAt(i));
                if (i > 0 && (numberString.length() - i) % 3 == 0) {
                    formattedNumberString.insert(0, ",");
                }
            }
            return formattedNumberString.toString();
        }
    }
}

在FreeMarker模板中使用自定义函数:

代码语言:freemarker
复制
<#-- 假设将长类型值赋值给变量longValue -->
${addCommas(longValue)}

通过以上方法,可以在FreeMarker页面中获取长类型值的逗号。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

怎么获取枚举的值_枚举是值类型吗

大家好,又见面了,我是你们的朋友全栈君。 最近在做一个学校的系统,其中用到一些枚举,可是在显示下拉列表时要绑定枚举的描述及其枚举值时就只一个一个的默认设死,这样不灵活。有没有其快捷方法?...搜了下百度很多相关资料有了些许眉目,代码如下 1.首先定义枚举,这里要做显示学生状态的列表,如下所示 1 /// 2 /// 学生状态 3 /// 4...25 /// 休学 26 /// 27 [Description("休学")] 28 Suspend = 3 29 } 2.循环取枚举属性,Enum.GetNames这个方法是获取枚举定义的属性...(如Study),Enum.GetValues这个方法是获取枚举定义的属性值(如0) 1 foreach (var em in Enum.GetNames(typeof(StudentStatusEnum...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168237.html原文链接:https://javaforall.cn

4.5K30
  • JavaScript 获取鼠标及元素在页面上的位置

    HTML5学堂:JavaScript获取鼠标的位置,大家会想到clientX/Y等属性,灵活的获取鼠标的位置信息,能够便于我们实现各种复杂的页面交互效果,到底还有哪些属性可以获取鼠标的位置信息?...另外,还有哪些能快速获取标签在页面中的位置信息? 在书写一些“拖拽”页面交互效果,比如常见的拖拽效果、自定滚动条、放大镜等效果,都需要用到了鼠标或元素在页面上的位置信息。...另外,也要跟大家分享一个方法,它能快速的获取元素在页面上的位置信息,不同于之前学过的offsetLeft等属性,它就是——getBoundingClientRect()方法 回顾clientX/Y获取鼠标位置的方式...今天要给大家分享的是另外一种快速获取元素在页面上的位置,赶紧尝试书写一下下面的实例 代码实例: 获取到的值为2,非IE获取到的值为0; // 这样保证在各个浏览器的效果都是一致的 // 分别减去多出来的2px return

    3.4K60

    getBoundingClientRect方法获取元素在页面中的相对位置

    获取元素位置可以用 offset 或 getBoundingClientRect,使用 offset 因为兼容性不好,比较麻烦,offset获取位置会形成“回溯”。...1.使用语法: element.getBoundingClientRect(); 方法中没有任何参数,返回值为对象类型。...2.在IE8及以下的浏览器中,返回值对象包含的属性值有: top::元素上边缘距离文档顶部的距离; right: 元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离; left:...元素左边缘距离文档左边的距离; 3.在IE9以上、谷歌、火狐等浏览器中,返回值对象包含的属性值有: top: 元素上边缘距离文档顶部的距离; right:元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离...; left:元素左边缘距离文档左边的距离; width:元素的宽度(包含 padding 和 border) height:元素的高度(包含 padding 和 border) 4.在IE8及以下浏览器没有

    3.9K20

    freemarker+yml介绍 以及freemarker与JSP的区别

    目录 1. freemarker介绍  2. freemarker使用步骤   2.1 在pom.xml引入freeMarker的依赖包   2.2 在springboot中添加freemarker配置...velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。...但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。 2、宏定义比jsp tag方便 3、内置大量常用功能。...req     #后缀名freemarker默认后缀为.ftl,当然你也可以改成自己习惯的.html         suffix: .ftl     #设置响应的内容类型         content-type...但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。 2、宏定义比jsp tag方便 3、内置大量常用功能。

    1.5K40

    获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎

    先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java...反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配。在实际的业务中,可能会动态根据属性去获取值。...fields[i].getType()); fieldNames[i] = fields[i].getName(); } return fieldNames; } /** * 获取属性类型...(type),属性名(name),属性值(value)的map组成的list * * @param o 实体 * @return */ public static List<Map<...getFieldValueByName(fields[i].getName(), o)); list.add(infoMap); } return list; } /** * 获取对象的所有属性值

    6.4K50

    结构struct(值类型)在实际应用要注意的二点:

    .Net中的数据类型大致可以分为二类:一类是值类型,一类是引用类型;结构(struct)是值类型,从性能上考虑值类型更有优势(关于值类型与引用类型的详细讨论不在本文范围内,大家可以去查阅相关资料).对于一些特定场合...,简化了一下代码,这次编译时vs却提示有错: "错误 在控制返回到调用程序之前,自动实现的属性“Test...._Default.MyStruct2.Value”的支持字段必须完全赋值。请考虑从构造函数初始值设定项中调用默认构造函数。 ..." "在给“this”对象的所有字段赋值之前,无法使用该对象" 究其原因,我们用Reflector看下编译器是如何处理"自动属性"的,先把结构改成普通的类(目的是让编译先通过,好观察最终生成的代码 Code...关键就在这里:对于类来讲,并不要求在访问类的实例之前对所有成员赋值,所以这里引用this是合法的;而值类型要求在使用前必须对所有成员赋值,所以值类型如果在构造函数中直接给自动属性赋值,这里this代表的就是结构本身

    95260

    EasyCVR在页面调用设备录像的接口参数获取方式及注意事项

    以上接口就是EasyCVR获取设备录像回看流地址的接口,调取该接口一共需要四个必选参数和一个备选参数,我们先简单讲下参数的获取方式。...参数Channel就是通道id可以从下图中的接口里获得: 参数File是用户咨询较多的参数,接口文档里并没有关于这个参数的获取介绍,但是可以通过以下接口获得文件名称: 获取到name后,就可以带入file...参数里面: 除了这两个需要获取的参数,还有三个参数是需要用户自己定义,其中stime和etime的格式主要是YYMMDDHHmmss的格式。...都配置完成后即可获取自己所需要的设备录像。...还有一点大家需注意,/api/v1/devices/stopchannelstream这个接口在接口文档里是没有的,如果需要调用该接口,可以在浏览器上进行调用。

    50410

    模板引擎 FreeMarker

    概述 freemarker 是一款模板引擎,即基于模板和要改变的数据用来生成输出文本(HTML页面、电子邮件、配置文件、源码等)的通用工具。它并非面向最终用户,而是一个 java 类库。 2....模板文件通常都是以 ftl 作为扩展名,也可以为 html、xml、jsp 等 在 resources 下创建 templates ,此目录为 freemarker 的默认模板存放目录,在 templates...,使用方法是在 stu 后边加 "_index",它的值是从 0 开始 集合指令-Map -- 获取 map 中的值 map['keyname'].property map.keyname.property...= 两边必须是相同类型的值,否则会产生错误 字符串 "x" 、"x " 、"X"比较是不等的,因为FreeMarker是精确比较 gt 代替 > , FreeMarker 会把 > 解释成 FTL 标签的结束字符...,每三位使用逗号分隔。

    1.8K20
    领券