首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
求大佬帮帮忙啊
dql
2020-06-04 15:59
后台传个map map里有list集合 到页面怎么取list里的对象
项目:
JFinal
评论区
dql
2020-06-04 16:00
@JFinal
回复
dql
2020-06-04 16:02
1
回复
dql
2020-06-04 16:02
1
回复
dql
2020-06-04 16:02
1
回复
dql
2020-06-04 16:02
1
回复
杜先生
2020-06-04 16:06
前端用什么写的啊,个人习惯用freemarker之类的,取值很方便
回复
dql
2020-06-04 16:07
@杜先生
就是JFinal默认的模板
回复
dql
2020-06-04 16:07
@dql
Enjoy 模板
回复
JFinal
2020-06-04 16:11
外层对 map 迭代
#for (x : map)
#(x.key)
#(x.value)
内层对 map 的 value 迭代
#for (y : x.value)
#(y)
#end
#end
当然,如果你不需要对 map 迭代,只需知道得到 list 的 key 即可,下面假定 key 为 listKey
#for ( x : map.get("listKey"))
#(x)
#end
总之,用法跟 java 几乎一样,只不过无需指定类型
回复
dql
2020-06-04 16:12
@JFinal
感谢!! 这卡了我好久
回复
JFinal
2020-06-04 16:15
@dql
其实文档中很详细,一定要先浏览下文档, enjoy 这部分的文档主要就两个页面, 15 分钟看完足够了
都是 java 风格的用法,学习成本极低
回复
杜先生
2020-06-04 16:15
@dql
不好意思,很长时间没写过JAVA项目,还没用过这个模板
回复
JFinal
2020-06-04 16:18
@杜先生
freemarker 我用了 6 年多,实在受不了才决定开发 enjoy 模板引擎
所以,enjoy 自然是要去除 freemarker 固有的一些缺点的,enjoy 用起来比 freemarker 爽多了
回复
dql
2020-06-04 16:19
@JFinal
还是波总厉害
回复
dql
2020-06-04 16:20
@杜先生
我也是新手 多多学习 哈哈
回复
JFinal
2020-06-04 16:21
@dql
enjoy 的用法与 java 几乎是一样的,并且针对 java 的啰嗦进行了极少量的增强,例如 map 迭代的增强:
#for ( x : map)
#(x.key)
#(x.value)
#end
当然,如果你不想学习,直接使用 java 规则也可以:
#for ( x : map.entrySet() )
#(x.getKey())
#(x.getValue())
#(x.key)
#(x.value)
#end
回复
dql
2020-06-04 16:25
@JFinal
波总 那我刚才那种情况 我第一次循环 #for(list : map)
然后list是键值对 值是list集合 我能不能直接取集合里的对象不遍历集合的情况下
比如说 list.value.对象.属性
回复
JFinal
2020-06-04 16:38
@dql
一定要心中清楚变量的类型,假定你手头的 map 这个变量是 Map 类型
那么循环的时候,每次出来的变量就要取它的 .key 与 .value
你上面的回复中用到了: #for (list : map)
虽然你的迭代变量名为 list,但这个 list 仍然需要 list.key、list.value 来取值
被迭代的对象,不会因为你用了什么变量名而去改变规则,所以我建议对迭代的变量使用 x、y 这种变量名,将上面的
#for ( list : map ) 改成 #for ( x : map ) 以免被名字误导
回复
dql
2020-06-04 16:46
@JFinal
懂了 懂了
回复
JFinal
2020-06-04 16:47
@dql
#for 指令小扩号以内的第一个参数, 只是一个临时的变量名,只是一个代号,它的类型完全取决于你当前是对什么类型进行迭代
它的类型不会随着你取不同的名字而改变,例如你取一个 list , 但它仍然不是 List 类型
回复
dql
2020-06-04 17:15
@JFinal
ok 明白 感谢波总!
回复
发送
我要分享
热门分享
扫码入社