我正在尝试使用struts 2表单更新地图。迭代地图会正确显示键值对,但是当我提交表单时,地图不会被填充。 Key是一个包含字符的字符串。和/。这是一个例子:
Map<String, String> map = new HashMap<String, String>();
map.put("utilities.student_info.note", "note");
<s:iterator value="map" var="property" status="status">
<s:property value="%{key}"/>
<s:textarea name="map[%{key}]" value="%{value}" rows="5" cols="60"/>
</s:iterator>
我尝试使用这样的引号:name="map['%{key}']"
,但它仍然不起作用。
我可以从日志中看到ParamsInterceptor
正确设置了参数:map[utilities.student_info.note] => [note]
。但是地图在行动方面是空的。
如果我使用name="map[%{#attr.status.index}]"
,它会填充地图,但密钥是索引(map[0] => [note])
,这是不正确的。
任何建议将不胜感激。感谢。
答案 0 :(得分:0)
这取决于您使用的Struts2版本,但在2.3.8 map['utilities.student_info.note']
上不是可接受的参数。试试map['utilities_student_info_note']
它应该有效。密钥只能用单词字符组成。