2013-11-26 26 views
0

我有以下情況:地圖表達式語言(EL)引用的對象一直沒有找到

Flex

public class Flex { 

private String key; 
private String val; 


public Flex() { 
} 

public void setKey(String key) { 
    this.key = key; 
} 

public String getKey() { 
    return key; 
} 

public void setVal(String val) { 
    this.val = val; 
} 

public String getVal() { 
    return val; 
} 

FlexManager

public class FlexManager { 


private Map<String, Flex> keyValue = new HashMap<String, Flex>(); 

public FlexManager() { 
    populateFlexFieldMap(); 
} 


private void populateFlexFieldMap() { 
    if (keyValue.isEmpty()) { 
     List<Flex> fieldds = loadKVFromFile(); 
     for (Flexfield : fieldds) { 
      keyValue.put(field.getKey(), field); 
     } 
    } 
} 

public void setKeyValue(Map<String, FlexField> keyValue) { 
    this.keyValue = keyValue; 
} 

public Map<String, Flex> getKeyValue() { 
    return keyValue; 
} 
} 

與managedBean輸入已準備就緒。

如何我可以通過getKeyValue()法EL得到Flex類瓦爾價值?

我的做法是這樣的:${managedBeanName.keyValue['key'].val} 但我在IDE得到這樣的警告

參考${managedBeanName.keyValue['key'].val}沒有找到

+0

是。但是,如果刪除.val我不會再收到警告。這意味着managedBean是正確的,** $ {managedBeanName.keyValue ['key']} **也是。但不是** $ {managedBeanName.keyValue ['key']。val} ** –

+0

這不是一個通用的Java API /編譯器/語法相關的問題,所以請不要污染'[java]'標籤而不提問題關於Java語言。這也不是一個普通的Java EE問題,而是一個JSF/EL特定的問題,所以請不要污染'[java-ee]'標籤,並帶有關於JSF/EL的特定問題。用戶通過標籤瀏覽,並期望看到真正與該標籤相關的問題。 – BalusC

+0

@BalusC是Zoro先生 –

回答

2

你不需要爲了調用一個getter鍵入get

${managedBeanName.keyValue['key'].val} 
+0

好的。謝謝。得到的只是我的一個錯誤(複製和粘貼)。這種方法的問題是,我得到**參考對象還沒有找到** –

+0

這是來自IDE的警告,或者當您運行該應用程序時這是一個錯誤? –

+0

它來自IDE。你的意思是我可以忽略它嗎? –

相關問題