我正在开发 Struts2 应用程序;
我的显示对象是地图对象:
Map<String, HashMap<String, List<PlanDAO>>> channelRoomTypePlanmap =
new HashMap<String,HashMap<String,List<PlanDAO>>>();
Map<String, List<RateInventoryDAO>> rateInventoryMap =
new HashMap<String, List<RateInventoryDAO>>();
在这里,我有两个对象,其中rateInventoryMap
键取决于channelRoomTypePlanmap
值组合。
就像我打印channelRoomTypePlanmap
的第一个值时,我希望使用其值的组合来创建密钥,并在rateInventoryMap
中找到它,如果它是真的,那么它将打印其值。< / p>
<div>
<table id="mainTable" >
<tr>
<td>
<s:iterator value="channelRoomTypePlanmap">
<table border="1">
<tr>
<td><s:property value="key" />
</td>
<td>
<table>
<s:iterator value="value">
<tr>
<td><s:property value="key" />
</td>
<td>
<table border="1">
<s:iterator value="value">
<tr>
<td><s:property value="planName" />
</td>
<s:iterator value="rateInventoryMap">
<s:iterator value="value">
<td><s:property value="currentRate" />
</td>
</s:iterator>
</s:iterator>
</tr>
</s:iterator>
</table>
</td>
</tr>
</s:iterator>
</table>
</td>
</tr>
</table>
</s:iterator>
</td>
</tr>
</table>
</div>
我试过这个,它以错误的格式显示,意味着显示所有来自第二个Map的所有数据。我也听说过应该避免使用scriptlet代码。
如何在JSP上加入这两个地图?
使用上述代码的当前视图_
答案 0 :(得分:2)
您的模型结构
new HashMap<String,HashMap<String,List<PlanDAO>>>();
应该改进;它太吵了,你需要在你的页面中有五个嵌套的迭代器来做你需要的东西,永远不知道你在哪个迭代器中不计算它们,更重要的是,即使这个结构可以用来显示数据,它无法用来发送回来(你永远不知道)。
我强烈建议您阅读以下答案:
也就是说,在处理JSP中的集合时,你必须阅读OGNL的两个重要特性: