freemarker遍历集合
发表于|更新于
|浏览量:
读而未晓则思,思而未晓则读——朱熹
官方文档:https://freemarker.apache.org/docs/dgui_quickstart_template.html
语法如下:<#list sequence as loopVariable>repeatThis</#list>
例如模板如下:
1 | <p>We have these animals: |
就会生成
1 | <p>We have these animals: |
这里animal等于是数组里每一项

相关推荐
2022-12-13
如何关掉Parsed mapper file日志打印
时间一直走,没有尽头,只有路口。——《摆渡人》 先说结论: 将yml配置里的mybatis-plus配置 1log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 改为 1log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl 在yml配置里新增一条 1234logging: level: root: DEBUG com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean: INFO 完整配置放在最后结尾处 为什么这样配?你是如何找到的? 首先我们搜索Parsed mapper file(因为这个日志大概率是硬编码存在于源码之中的,除非是做了日志本地化,会在配置文件里) 这里排除掉一个纯依赖模块,一个注解模块,挨个到com包搜索,在最后一个extension模块搜到了 那我们将这个类的日志级别设为INFO应该就搞定了,但是没有生效 我们打个断点,看看什么情况,等断点停到...
2021-06-09
为什么总说不要循环调用dao
我要让全世界都记住我的温柔。——曼德拉 上次咱们测试过了单表多次查询和连表一次查询的性能比较 这次咱们又抽了点时间进行了一次 循坏调用dao查询性能测试 同样是那一百万条数据,最后测试结果出乎意料 123456789101112131415@Testpublic void cycleTest() { long startTime = System.nanoTime(); List<Film> films = filmMapper.selectList(Wrappers.lambdaQuery()); List<Map<String, Object>> collect = films.stream().map(film -> { Language language = languageMapper.selectById(film.getLanguageId()); Language language1 = languageMapper.selectById(film.ge...
2024-01-12
promisesaplus.com
产生巨大后果的思想常常是朴素的。——列夫·托尔斯泰 今天刷到一个网站: https://promisesaplus.com/ 对应的组织: https://github.com/promises-aplus/ 对应有一个开源库用来检验是否符合Promise/A+规范: https://github.com/promises-aplus/promises-tests/ 安装: 1npm install promises-aplus-tests -g 然后添加CI脚本 12345678{ "devDependencies": { "promises-aplus-tests": "*" }, "scripts": { "test": "run-my-own-tests && promises-aplus-tests test/my-adapter" ...
2024-06-26
事务同步器
君子择交,莫恶于易与,莫善于胜己。——王夫之 有时候我们需要在事务执行前后执行一些代码,这时候可以使用事务同步器 1234567891011121314151617181920212223242526272829303132import org.springframework.transaction.support.TransactionSynchronization;public class MyTransactionSynchronization implements TransactionSynchronization { @Override public void beforeCommit(boolean readOnly) { // 事务提交之前的逻辑 System.out.println("Before commit"); } @Override public void beforeCompletion() { // 事务完成之前的逻...
2024-05-15
jackson范型注意
放弃不难,但坚持一定很酷。——《解忧杂货店》 今天使用 Jackson 有个疑问,就是带范型的对象,Jackson 序列化后,范型会怎样处理: 就比如说{"data":{"data":1}},以及下面这个类: 1234@Datapublic static class Foo<T> { private T data;} 这个外层的 data 会反序列化出来什么类型呢? 实际上反序列化出来 LinkedHashMap 1234var obj = mapper.readValue(""" {"data":{"data":1}} """, Foo.class);Assertions.assertEquals(LinkedHashMap.class, obj.getData().getClass()); 如果我们需要继续解析成具体的类型,则...
2024-05-27
lombok的@StandardException
但愿每次回忆,对生活都不感到内疚。——郭小川 官方文档: @StandardException 很简单的一个注解,主要是解决自定义异常需要重写一堆构造器 123456import lombok.experimental.StandardException;@StandardExceptionpublic class ExampleException extends Exception {} 就会生成: 12345678910111213141516171819public class ExampleException extends Exception { public ExampleException() { this(null, null); } public ExampleException(String message) { this(message, null); } public ExampleException(Throwable c...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog