2013-06-17 2 views
6

से पूर्णांक कुंजी के साथ मानचित्र का उपयोग करें बैकिंग बीन में मैंने Map<Integer,String> संपत्ति परिभाषित की है। एक xhtml-file के अंदर ईएल से मानचित्र तक पहुंचने का प्रयास करते समय, मुझे कुछ भी वापस नहीं मिलता है।जेएसएफ ईएल

<h:outputLabel value="#{bean.myMap[0]}"> 

कुंजी 0 के लिए मान वापस नहीं करता है। एक स्ट्रिंग कुंजी के साथ यह काम करता है।

यह एक List<String> के साथ काम करता है, लेकिन मैं मानचित्र विरल सरणी के कुछ प्रकार (सभी नहीं अनुक्रमित मान)

+0

आप का उपयोग करना चाहिए 'omnifaces': http: //showcase.omnifaces

मैं एक प्रबंधित सेम बनाया। संगठन/ –

+0

@RongNK omnifaces का कौन सा घटक यहां लागू होगा? –

+0

[जेएसटीएल कुंजी द्वारा मानचित्र मूल्य तक पहुंचने के संभावित डुप्लिकेट] (http://stackoverflow.com/questions/924451/jstl-access-a-map-value-by-key) –

उत्तर

6

ईएल long प्रकार के रूप में अपने शाब्दिक संख्या 0 की व्याख्या करना चाहते हैं। Map<Integer,String> के बजाय Map<Long,String> आज़माएं।

String value = myMap.get(Long.valueOf(0)); 
1

मैं एक ही समस्या थी और यह पाया जब मैं के लिए googling गया था:

myMap.put(Integer.valueOf(0), "SomeValue"); 

यह वही है ईएल मूल्य वापस पाने के लिए करता है:

यह है कि तुम क्या माना जाता है कि कर रहे हैं एक तरकीब। नक्शा बदलना वास्तव में मेरे लिए एक विकल्प नहीं था, क्योंकि यह ऑटो-जेनरेट कोड था, इसलिए मैं यह कर रहा हूं कि मैं क्या कर रहा हूं।

package my.bean.tool; 

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ApplicationScoped; 

@ManagedBean 
@ApplicationScoped 
public class Caster { 

    public Caster() { 
    } 

    public int toInt(long l) { 
     return (int) l; 
    } 
} 

तो मैं बस किया जो अपने मामले में हो गया होता:

<h:outputLabel value="#{bean.myMap.get(caster.toInt(0))}"> 
संबंधित मुद्दे