直接从JSF / richfaces访问基于java的DOM树

基于这个问题,我还有其他一些问题:

1)这个问题中可用于jsf的地图实际上是一个数字,所以我现在不确定支持bean方法的返回类型应该是什么。 如果我修改它的当前Array返回类型为Array<Map Integer, Map>> (或ArrayList<Map Integer, Map>> ?)它会不会是在jsf端进一步嵌套迭代器的情况? 麻烦是一个Array / ArrayList不是Map,我不确定它在jsf中的表现如何。 这是正确的:

              


2)我真正存储在这个地图中的是从java端解析的XML DOM树中的xpath rips。 我现在想我可以直接从JSF访问这个基于java的DOM树而不必使用XPath – > ArrayOfMaps并返回它。 在看起来像这样的XML文件中,有没有比使用上述方法更好的方法?:

   1 myName  1 C:\my\path .*\.\w{3} .*\.x   2 C:\my\otherpath .*\.\w{3} .*\.x   

再次感谢马克

     

这是错的。 对于ArrayList每次迭代都不会像您想象的那样返回Map.Entry对象。 它只返回List的单个元素(在您的情况下是Map )。 这是它应该是这样的:

     

简而言之,对ListObject[]进行c:forEach迭代,如下所示

  ...  

最好在原始Java代码中解释为

 for (Object item : array) { // ... } 

而在上一个主题中演示的c:forEach迭代优于在原始Java代码中解释为:

 for (Entry entry : map.entrySet()) { K key = entry.getKey(); // ${entry.key} V value = entry.getValue(); // ${entry.value} } 

本文展示了一种使用JSTL递归的方法。 你可以尝试一下:

     

只是,为了适应您的情况,您可以在循环之前放置以下内容: