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等于是数组里每一项

相关推荐
2024-02-29
satoken+webflux获取header以及body
你若要喜爱自己的价值,你就得给世界创造价值。——歌德 代码如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980import cn.dev33.satoken.context.SaHolder;import cn.dev33.satoken.context.SaTokenContextForThreadLocalStorage;import cn.dev33.satoken.reactor.context.SaReactorSyncHolder;import cn.dev33.satoken.reactor.filter.SaReactorFilter;import cn.dev33.satoken.router.SaRouter;import jakarta.annotation.Resource;import org.j...
2023-10-25
多端IM通信层框架MobileIMSDK
对可耻行为的追悔是对生命的拯救。——德谟克里特 今天看了这篇文章: 万字长文:手把手教你实现一套高效的IM长连接自适应心跳保活机制 其中理论对应实践的开源项目: https://github.com/JackJiang2011/MobileIMSDK MobileIMSDK是一套专为移动端开发的原创IM通信层框架: 历经10年、久经考验; 超轻量级、高度提炼,lib包50KB以内; 精心封装,一套API优雅支持UDP 、TCP 、WebSocket 三种协议(可能是全网唯一开源的); 客户端支持iOS、Android、标准Java、H5(暂未开源)、小程序(暂未开源)、Uniapp(暂未开源); 服务端基于Netty,性能卓越、易于扩展;👈 可与姊妹工程 MobileIMSDK-Web 无缝互通实现网页端聊天或推送等;👈 可应用于跨设备、跨网络的聊天APP、企业OA、消息推送等各种场景。 MobileIMSDK工程自2013年10月起持续升级至今(当前最新版是v6.4,版本更新日志点此查看 ),历经10年,起初用作某自用产品的即时通讯底层,完全从零开发。2023年...
2024-04-16
mybatis判断批量操作是否全部执行成功
报纸是这个世界的镜子。——埃利斯 例如这样的代码: 123456789101112131415161718192021222324252627282930313233343536373839404142434445import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.ExecutorType;import java.util.List;import org.apache.ibatis.executor.BatchResult;public class BatchOperationExample { public boolean checkAllBatchResultsSuccessful(List<BatchResult> batchResults) { for (BatchResult result : batchResults) { int[] updateCounts = result.g...
2021-10-22
ThreadLocal
只有利害关系和出众的才干,才能帮你出起主意来,才认真细到,眼光透彻。——巴尔扎克 我们在web开发中经常遇到在一个线程中需要共享变量 这里就可以使用ThreadLocal去完成 例如我们用户发起请求,我们在过滤器等将用户信息存储在ThreadLocal中,这样在代码中获取用户信息就相对容易 写法如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import cn.hutool.core.lang.Opt;/** * 用户工具类 * * @author <achao1441470436@gmail.com> * @since 2021/8/25 12:10 */public class UserUtils { private static final ThreadLocal<UserDetail> USER_THREAD = new ThreadLocal<>(); /** ...
2024-03-01
xcode报错SDK does not contain 'libarclite' at the path
希望是附丽于存在的,有存在,便有希望,有希望,便是光明。 —— 鲁迅 今天报错: 123SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target 解决方式,下载: https://github.com/kamyarelyasi/Libarclite-Files/blob/main/libarclite_iphoneos.a 放到 1/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc 即可
2022-04-05
使用BiFunction更改map的value
伟大变为可笑只有一步,但再走一步,可笑又会变为伟大。——佩思 这个PR是这样的: map 通过传入的BiFunction实现来返回值为新的map,支持返回别的类型 123456789101112131415161718/** * 通过biFunction自定义一个规则,此规则将原Map中的元素转换成新的元素,生成新的Map返回<br> * 变更过程通过传入的 {@link BiFunction} 实现来返回一个值可以为不同类型的 {@link Map} * * @param map 原有的map * @param biFunction {@code lambda},参数包含{@code key},{@code value},返回值会作为新的{@code value} * @param <K> {@code key}的类型 * @param <V> {@...
