Java 使用JSF、MyFaces和;小脸
我在循环HashMap以将其值打印到屏幕上时遇到了一些问题。有人能再检查一下我的代码看看我做错了什么吗。我似乎找不出什么不对劲,但肯定有什么不对劲 在servlet中,我将向请求添加以下内容:Java 使用JSF、MyFaces和;小脸,java,jsf,facelets,myfaces,Java,Jsf,Facelets,Myfaces,我在循环HashMap以将其值打印到屏幕上时遇到了一些问题。有人能再检查一下我的代码看看我做错了什么吗。我似乎找不出什么不对劲,但肯定有什么不对劲 在servlet中,我将向请求添加以下内容: Map<String, String> facetValues = new HashMap<String, String>(); // Filling the map req.setAttribute(facetField.getName(), facetValues); 我也尝
Map<String, String> facetValues = new HashMap<String, String>();
// Filling the map
req.setAttribute(facetField.getName(), facetValues);
我也尝试过c:forEach,但得到了相同的结果。有人知道我哪里出错了吗
谢谢你的意见,
李我想到三件事: 一, 没有说它(它只说List),但我看到UIRepeat使用它作为模型(以h:dataTable的方式)。映射不会自动使用DataModel类型包装-该类型不受隐式支持。您需要将该值作为您自己的数据模型实现的实例,或者将其作为隐式支持的类型(例如java.util.List)提供 二, 我不确定这些值要映射到什么:
${item}
${item.key}
${item.item}
如果将“规程”更改为列表类型,则可以绑定到属性:
${item.key}
${item.value}
您可以这样创建列表:
Map<String, String> facetValues = new HashMap<String, String>();
// Filling the map
List<Map.Entry<String, String>> discipline
= new ArrayList<Map.Entry<String, String>>(facetValues.entrySet());
MapFacetValues=newHashMap();
//填图
列出纪律
=新的ArrayList(facetValues.entrySet());
三,
结果表明,JSTL标记只在组件树创建时进行计算。我不清楚使用c:out作为ui:repeat的子级是否能正常工作。您可能需要改用h:outputText。(当然,我可能错了——我没有试过。)
在servlet中,我向请求添加以下内容
在JSF中,将某些内容放入请求范围听起来很奇怪,但我相信您知道自己在做什么
只接受列表或数据模型,不接受集合或映射。这是JSF2.1的路线图。有了EL2.2支持,您可以像下面这样迭代映射
<ui:repeat value="#{myBean.stats.keySet().toArray()}" var="x">
<h:outputText value="#{myBean.stats.get(x)}" /><br />
</ui:repeat>
您能否澄清:您是否看到地图中每个项目的“项:,键:,值:”是否都有(但实际值未打印)?不是每个值都有。循环只迭代一次。但是我很确定我正在将正确的HashMap传递到循环中。干杯,Berkay,省去了我很多麻烦。
Map<String, String> facetValues = new HashMap<String, String>();
// Filling the map
List<Map.Entry<String, String>> discipline
= new ArrayList<Map.Entry<String, String>>(facetValues.entrySet());
<ui:repeat value="#{myBean.stats.keySet().toArray()}" var="x">
<h:outputText value="#{myBean.stats.get(x)}" /><br />
</ui:repeat>