Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 如何从请求中读取java映射并在velocity模板中对其进行迭代?_Dictionary_Jvm_Liferay_Liferay 6_Velocity - Fatal编程技术网

Dictionary 如何从请求中读取java映射并在velocity模板中对其进行迭代?

Dictionary 如何从请求中读取java映射并在velocity模板中对其进行迭代?,dictionary,jvm,liferay,liferay-6,velocity,Dictionary,Jvm,Liferay,Liferay 6,Velocity,问题:我正在使用Liferay 6.0.5。我想从请求中读取java映射,并在velocity模板中对其进行迭代。“速度”不能将其作为贴图读取,而是将其作为字符串值 JSP代码: 1.阅读类别: List curCategories=assetEntry.getCategories; Map catgrMap=新HashMap; 字符串温度=; 字符串键=null; 对于资产类别:curCategories{ key=AssetVocableAryServiceUtil.GetVocableAr

问题:我正在使用Liferay 6.0.5。我想从请求中读取java映射,并在velocity模板中对其进行迭代。“速度”不能将其作为贴图读取,而是将其作为字符串值

JSP代码: 1.阅读类别:

List curCategories=assetEntry.getCategories; Map catgrMap=新HashMap; 字符串温度=; 字符串键=null; 对于资产类别:curCategories{ key=AssetVocableAryServiceUtil.GetVocableAryCategory.GetVocableAryId.getName; 如果!临时同等信号CASEKEY{ catgrMap.putkey,category.getName; 温度=钥匙; }否则{ String val=StringcatgrMap.getkey; val=val+,+category.getName; val的putkey; 温度=钥匙; } } 在请求中设置映射

request.setAttribute("categoryMap",catgrMap);
我想要的:我想要迭代这个catgrMap并读取它的键和值。以下是步骤:

从请求获取映射:

#set ($categoryMap= $request.get('attributes').get('categoryMap'))
在地图上迭代-在速度上迭代地图有很多方法,下面是其中的一些方法。 2.1

foreach$key in$keys $key $categoryMap[$key] 结束

2.3
#set ($map = $categoryMap.getMap() )

#foreach ($mapEntry in $map.entrySet())
$mapEntry.key $mapEntry.value 结束

2.3
#set ($map = $categoryMap.getMap() )

#foreach ($mapEntry in $map.entrySet())
障碍:问题不在于我们如何迭代,而在于速度如何从请求中读取地图。它将地图作为字符串对象读取,因此无法进行迭代。${categoryMap.class.name}返回字符串而不是映射


将贴图传递给velocity并在其上迭代的可能方式有哪些?我们不喜欢使用ext plugin。

为什么不通过模板上下文传递地图呢?这是Liferay 6吗?正如您提到ext plugin一样,我假设它是Liferay 6,为什么不使用插件SDK而不是在Velocity中执行此操作?一个问题,Velocity位于何处?主题还是网页内容模板?我也遇到过这个问题,据我记忆所及,我相信$request不是实际的请求对象,而是一个映射。@RP-你说得对,这是在web内容模板中。你们可以发布一些代码来参考我上面的帖子吗?虽然我已经通过一些变通方法和字符串类让它工作了,但我很高兴能从你们这里知道正确的方法。
2.3
#set ($map = $categoryMap.getMap() )

#foreach ($mapEntry in $map.entrySet())