0

我有以下内容:

    <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 来解决这个问题,我会避免使用空指针,直到操作设置表单。但是,我仍然想知道为什么会这样。

4

2 回答 2

0

您如何确定访问相对于 Action 触发的顺序?由于setMyMap只存储一个引用,一种可能性是调用者在不同的线程上运行并在设置映射后修改它。

于 2010-11-11T04:59:18.947 回答
0

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

于 2010-11-29T23:13:14.570 回答