2010-11-10 16 views
0

我有以下幾點:HTML:選項調用就會設置之前 - >空指針

<html:select property="myObject.value"> 
     <html:options property='myMap(someKey)'/> 
    </html:select> 

map(someKey)在動作設定。我還創建了形式以下方法:

public void setMyMap(final Map<String, Collection<String>> map) 
{ 
    myMap = map; 
} 

public Map<String, Collection<String>> getMyMap() 
{ 
    return myMap; 
} 

這看起來幾乎是工作,但偶爾myMap(someKey)適當Action之前被訪問時連打,導致空指針。我在做什麼錯,在這裏?

編輯:
如果我使用一個LazyMap來解決這個問題,我儘量避免空指針,直到動作設置形式了。不過,我仍然想知道爲什麼會發生這種情況。

回答

0

使用LazyMap或升級到Struts 2/3,所以有人可能真的能夠幫助你。

0

您如何確定相對於動作觸發的訪問順序?由於setMyMap只存儲一個引用,因此一種可能性是調用者正在另一個線程上運行並在設置之後修改地圖。