求助:freemarker遍历map的问题,无故遍历出一堆map方法名

发布于 2021-11-30 00:55:15 字数 666 浏览 687 评论 8

用到jfinal + freemarker 遍历map时出现了个奇怪的事儿

 

public void index(){
		Map vmap = new LinkedHashMap();
		vmap.put("A", "IT IS A");
		vmap.put("B", "IT IS B");
		setAttr("vmap",vmap);	
		render("/common/search.html");
	}

html页面如下:
<#list vmap?keys as k>
 ${k}
</#list>

结果输出了一堆map的方法名,很郁闷,很奇怪啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

心舞飞扬 2021-12-03 13:57:19

<#assign h={'a':'1a1','b':'1b1'} />

<#list h?keys as key >

${key} = ${h[key]}<br />

</#list>

这样应该没有问题

小情绪 2021-12-03 13:51:54

${mKey} 我就是这样的,不知道为什么会输出map的方法名。。。

檐上三寸雪 2021-12-03 12:56:15

struts提供了<constant name="struts.freemarker.wrapper.altMap" value="false"/> 参数供我们设置:

当值为true的时候,map?keys返回 map中key的列表 不(这时候map的key只能是String类型的)。当值设置为fase的时候,map?keys返回的是map这个类的所有方法和内容,例如map?keys?size返回22,因为map有22个方法。也可以使用

此时(map的key可以是string或者不是string类型的)

刘备忘录 2021-12-03 12:35:53

试了下,成功了。。。谢谢。

只为守护你 2021-12-03 05:36:54

回复
我是说这个问题的cause

归途 2021-12-02 13:54:26

回复
freemarker 的 bug 而已

醉生梦死 2021-12-01 09:17:32

回复
原来如此,混在一起确实很没道理

执手闯天涯 2021-11-30 12:12:47

你试试

<#list vmap.keySet() as k>
${k}
</#list>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文