在spring中使用对象作为映射(treemap)中的键
我尝试在JSP页面上显示FormBean中映射中对象的属性。地图定义为在spring中使用对象作为映射(treemap)中的键,spring,jstl,Spring,Jstl,我尝试在JSP页面上显示FormBean中映射中对象的属性。地图定义为 Map<KeyObject, ValueObject> m Map m KeyObject有两个属性 public class KeyObject implements Comparable<KeyObject> { private Integer a; private Integer b; getters/setters/and rest basic methods }
Map<KeyObject, ValueObject> m
Map m
KeyObject有两个属性
public class KeyObject implements Comparable<KeyObject> {
private Integer a;
private Integer b;
getters/setters/and rest basic methods
}
公共类KeyObject实现了可比较的{
私有整数a;
私有整数b;
getter/setter/和rest基本方法
}
在JSP上,我想获得如下代码:
<c:forEach items="${formBean.m}" item="itm">
...
<form:input path="m[itm.key].propertyName" />
...
</c:forEach>
...
...
我需要:
- 按正确的顺序显示元素
- 提交要映射的对象
更多信息。每个对象都有其他“视图”,所以我尝试使用c:import
<c:forEach items="${formBean.m}" item="itm">
<c:import url=${itm.value.name}Page.jsp" />
</c:forEach>
${itm.key.propertyName}
${itm.value.propertyName}
${formBean.m[itm.key].propertyName}
您可以像上面那样迭代映射键和值,并根据需要输出不同的字段 JSTL的可能副本是,但不仅仅是。我认为我需要使用一些代码(可能是initBinder)将POST数据正确地转换为对象。我已经检查了你们提供的链接,但它并没有包含任何有用的信息。那个么我不明白,你们有什么具体的问题?你问了三四个不同的问题。如何显示关键点为对象的地图中的值?2.如何提交这些数据并创建映射(键和值)?1在我的回答中得到回答,2)通过表单提交数据,3依赖于控制器中的反序列化(spring使用jackson)我只编写了一个示例,您的代码对此没有问题,但问题更复杂。我将编辑我的帖子来描述这一点。除了我应该如何发布数据并将[itm.key]转换为KeyObject之外?itm.key是一个KeyObject,发布数据只需使form action=postYes,key是KeyObject,但不是简单的object。如果使用整数或字符串,则不会有任何问题。
<c:forEach items="${formBean.m}" varStatus="itm">
<tr>
<td>${itm.key.propertyName}</td>
<td>${itm.value.propertyName}</td> <!--which is same as below ... -->
<td>${formBean.m[itm.key].propertyName}</td>
</tr>
</c:forEach>