में Iashate पर HashMap.values () Iterate जेएसएफ/फेसलेट्स का उपयोग कर रहा हूं, और मैं कुछ दस्तावेज़ ऑब्जेक्ट्स (कस्टम ऑब्जेक्ट) पर पुन: प्रयास करने की कोशिश कर रहा हूं जिसे मैं हैश मैप में रख रहा हूं। जब पृष्ठ लोड हो जाता है, तो मुझे त्रुटि "प्रॉपर्टी 'नाम मिल रहा है जिसे java.util.HashMap $ Values" पर नहीं मिला है।जेएसएफ + फेसलेट
private Map<String, Document> documents = new HashMap<String, Document>();
public Collection<Document> getDocuments(){
return documents.values();
}
और मेरे एक्सएचटीएमएल पेज में:: यहाँ क्या मेरी समर्थन सेम में है अगर मैं निम्नलिखित करने के लिए getDocuments समारोह बदल
<h:dataTable id="documentTable"
value="#{DocumentManager.allDocuments}"
var="doc" rowClasses="list-row-odd, list-row-even"
headerClass="table-header" styleClass="bordered">
<h:column id="col_name">
<f:facet name="header">Name</f:facet>
${doc.name}
</h:column>
</h:dataTable>
, यह काम करता है (जिसका अर्थ है तालिका त्रुटि के बिना प्रदर्शित किया जाता है), लेकिन मुझे यकीन नहीं है कि मुझे जेएसएफ/फेसलेट पेज के लिए सूची में मूल्यों को सही तरीके से प्रदर्शित करने की आवश्यकता क्यों है।
public List<Document> getDocuments(){
List<Document> rtrn = new ArrayList<Document>();
for(Document doc : documents.values())
rtrn.add(doc);
return rtrn;
}
क्या मुझे संग्रह पर पुन: प्रयास करने में सक्षम नहीं होना चाहिए?
एक तरफ, मुझे लगता है कि आप बस कॉल कर सकते हैं: नई ArrayList (document.values ()) लौटाएं –
Josh