【发布时间】:2016-07-19 13:17:55
【问题描述】:
我有以下代码在运行:
private Map<Long,String> map = new HashMap<Long, String>();
public Map<Long, String> getMap() {
return map;
}
public void setMap(Map<Long, String> map) {
this.map= map;
}
public String list() {
List<Object> list = new ArrayList<>();
list= objectDAO.listSomething();
for (int i=0; i<list.size(); i++){
Object row = (Object) list.get(i);
Long id = row.getId();
String name = row.getName();
map.put(id, name);
}
return SUCCESS;
}
使用调试器检查后,我可以看到映射中填充了正确的键和值。
我的jsp出现问题的地方在这里:
<s:checkboxlist list = "map"
listKey = "%{id.toString()}"
listValue = "%{name}"
name = "name"
value = "name"
label = "Label"/>
我也尝试过类似的方法,但没有运气:
<s:iterator value="map">
<s:checkbox label="Label" name="name" value="%{value}"/>
<s:property value="%{value}"/>
</s:iterator>
点击动作时的错误是这样的(已编辑):
template/simple/checkboxlist.ftl stack.findValue(parameters.listKey) 中第 28 行第 13 列的错误未定义。它不能分配给 itemKey - 类:freemarker.core.Assignment 文件:Assignment.java 方法:接受行:111 - freemarker/core/Assignment.java:111:-1
任何想法如何解决这个问题?我已将代码转换为通用代码。谢谢!
【问题讨论】:
-
第二个代码段是否也出现同样的错误?
-
抱歉,第二段没有错误,但根本没有显示复选框。
标签: java jsp scope struts2 hashmap