前台freemarker处理后台传递过来的map数据问题

先看几行代码

[#assign countConditions="{params:{courseId:${(params.courseId)!}}}"/]
[#assign result = stack.findValue(getLearnData("learnCourseItem","queryItemCountAndCourseConfig","${countConditions}")) /]


[#assign componentResult = stack.findValue(getLearnData("learnCourseItem","getCourseComponentsConfig","${countConditions}")) /]
[#assign menus = (componentResult.data.menus)![] /]


		[#list menus as menu]
			[#if (menu.status)?? && (menu.status == 1) && (menu.code)??]
				[#if (menu.code == "homework")]
					[#if (result.data.get(menu.id)) ?? && ((result.data.get(menu.id))?number> 0)]
					<li class="nav_li" id="homework_main_menu">
						<a id="homework_menu_button" href="${base}/learn/homework/blue/index.action?						params.courseId=${(params.courseId)!}¶ms.columnTypeId=${(menu.id)!}"  						target="mainContent">${(menu.name)!"全部作业"}</a>
					</li>
					[/#if]
				[/#if]
			[/#if]
		[/#list]	[/#list]

好了,先来描述一下问题,result和componentResult 是调用后台方法传递过来的map数据,result中的数据的key值是componentResult.data.menus.id的值.

这里我想在if判断中取到result中的值有两种方法

result.data.get(menu.id) 这是一种

result.data[menu.id] 这是一种

然后判断大小 注意先转换格式?number

注意点是这些,如果出不来数据的话,就直接在界面上输出一下example:

${result.data.get(menu.id)}

${result}

经验分享 程序员 微信小程序 职场和发展