Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java html:设置之前获取的选项调用->;空指针_Java_Properties_Struts_Struts 1 - Fatal编程技术网

Java html:设置之前获取的选项调用->;空指针

Java html:设置之前获取的选项调用->;空指针,java,properties,struts,struts-1,Java,Properties,Struts,Struts 1,我有以下资料: <html:select property="myObject.value"> <html:options property='myMap(someKey)'/> </html:select> 这似乎几乎是可行的,但偶尔会在点击相应的操作之前访问myMap(someKey),从而导致空指针。我做错了什么,在这里 编辑: 如果我使用LazyMap来解决这个问题,我会避免空指针,直到操作设置表单为止。但是,我仍然想

我有以下资料:

    <html:select property="myObject.value">
        <html:options property='myMap(someKey)'/>
    </html:select>
这似乎几乎是可行的,但偶尔会在点击相应的
操作之前访问
myMap(someKey)
,从而导致空指针。我做错了什么,在这里

编辑:

如果我使用LazyMap来解决这个问题,我会避免空指针,直到操作设置表单为止。但是,我仍然想知道为什么会发生这种情况。

您如何确定访问相对于动作触发的发生顺序?由于
setMyMap
只存储一个引用,一种可能是调用方正在另一个线程上运行,并在设置映射后修改映射。

使用或升级到Struts 2/3,因此实际上可能有人能够帮助您

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

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