1

我有以下内容(请注意,我正在使用以下划线作为前缀的 spring约定):

<input type="checkbox" name="speakersIds[${speaker.id}]" value="true" /> 
<input type="hidden" name="_speakersIds[${speaker.id}]" value="假” />

SpeakerIds 是我的模型的地图属性。

Map<Long, Boolean> speakerIds;

问题是在我的控制器中,未选中的复选框未设置为 false。

例子:

如果 SpeakerIds[0] 被选中,那么 speakerIds.get(0) == true

如果未检查 speakerIds[0],则 speakerIds.get(0) == null。<--- 这不应该是 == 假吗?

为什么?

4

1 回答 1

0

在地图的情况下,下划线约定似乎不起作用。

我终于在隐藏输入中使用了相同的属性名称。

<input type="checkbox" name='speakersIds["${speaker.id}"]' value="True" /> 
<input type="hidden" name='speakersIds["${speaker.id}"] ' 值="假" />

在测试时,我必须将 SpeakerIds 的类型从 Map<Long, Boolean> 更改为 Map<String, Boolean> 但它也应该与 map 键一起使用。

于 2013-01-30T01:25:59.957 回答