2012-08-28 1 views
1

Map<Integer, ArrayList<ObjectBO>>을 Tomahawk의 Datatable에 표시하고자합니다. 가능한 해결책을 시도했지만 아무 것도 작동하지 않는 것 같습니다.Tomahawk에있는 오브젝트의 ArrayList 맵을 표시하기위한 Datatable

<h:panelGrid style="font-family:verdana;font-size:12pt;color:white" columns="1"> 
    <h:outputText value="Choice 1"></h:outputText> 
    <t:dataTable newspaperColumns="1" value="#{startupBean.choiceKeys}" newspaperOrientation="horizontal" var="key"> 
     <t:column>  
      <h:outputText style="font-family:verdana;font-size:10pt;color:white" value="#{choiceMap[key].ObjectBO.displayName}"/> 
     </t:column> 
     <t:column>  
      <h:graphicImage width="50" height="50" id="choice" alt="jsf-sun" url="#{choiceMap[Key].ObjectBO.color_url}" value="#{choiceMap[Key].ObjectBO.color_url}"> 
      </h:graphicImage> 
     </t:column> 
    </t:dataTable> 
</h:panelGrid> 

그것의 백킹 빈 부분은

public List<Integer> getChoiceKeys() { 
    System.out.println("in keys"); 
    List<Integer> keys = new ArrayList<Integer>(); 
    keys.addAll(choiceMap.keySet()); 
    System.out.println("keys " + keys.size()); 
    return keys; 
} 

이 친절하게 나를 데이터 테이블을 통해지도를 통해 통과하는 방법을 알려 것입니다.

답변

0

숫자는 EL에서 Long으로 처리됩니다. 코드에서 key#{choiceMap[key]}으로 Long으로 처리되므로 IntegerLong이 아니므로 맵 키가 일치하지 않습니다. 지도 키로 Integer 대신 Long을 사용하면이 방법이 효과적입니다.

+0

감사합니다. BalusC! 나는 어제 아래의 링크를 따라 갔다. http://nitinbksc.wordpress.com/2012/03/23/java-map-in-jsf/ 8 시간 동안 내 질문에 답장을 할 수 없었습니다. 그래서 게시물을 업데이트 할 수 없습니다. – Jane

+0

반갑습니다. 사실'Map '을'List > '로 변환하는 것은' '에'Map'을 표시하는 특정 기능 요구 사항을 달성하는 다른 방법입니다. – BalusC