【发布时间】:2011-01-09 23:43:52
【问题描述】:
基于this question,我还有几个问题:
1) 这个问题中可供 jsf 使用的映射实际上是一个数字,所以我现在不确定支持 bean 方法的返回类型现在应该是什么。如果我将其当前的Array<String> 返回类型修改为Array<Map Integer, Map<String, String[]>>>(或ArrayList<Map Integer, Map<String, String[]>>>?),这只是在jsf 端进一步嵌套迭代器的情况吗?问题是 Array/ArrayList 不是 Map,我不确定这在 jsf 中的外观。这是正确的:
<c:forEach items="#{bean.map}" var="entry"> <!-- array -->
<c:forEach items="#{entry.value}" var="nentry"> <!-- map -->
<h:outputText value="Key: #{nentry.key}, Values:" /> <!-- integer -->
<c:forEach items="#{nentry.value}" var="nnentry"> <!-- sub map -->
<h:outputText value="Key: #{nnentry.key}, Values:" /> <!-- string -->
<c:forEach items="#{nnentry.value}" var="nnnentry"> <!-- string[] -->
<h:outputText value="#{nnnentry}" />
</c:forEach><br />
</c:forEach><br />
</c:forEach><br />
</c:forEach>
?
2) 我在这张地图中真正存储的是从 java 端解析的 XML DOM 树中提取的 xpath。我现在想我可以直接从 JSF 访问这个基于 java 的 DOM 树,而不必使用 XPath -> ArrayOfMaps 并返回它。在一个看起来像这样的 XML 文件中,有没有比使用上述方法更好的方法?:
<test>
<testid>1</testid>
<testname>myName</testname>
<inst>
<id>1</id>
<src>C:\my\path</src>
<mask>.*\.\w{3}</mask>
<mask>.*\.x</mask>
</inst>
<inst>
<id>2</id>
<src>C:\my\otherpath</src>
<mask>.*\.\w{3}</mask>
<mask>.*\.x</mask>
</inst>
</test>
再次感谢 标记
【问题讨论】:
标签: java jsp jsf richfaces jstl