紧急求助!有关利用<s:iterator>读取HashMap
我用action给一个变量DBResult赋值,它的类型为:HashMap<String, ? extends table>。其中table是一个自定义类,里面包括一些个人设定的属性。
现在尝试用<s:iterator>把map中的项一条条读出,并列出table中的属性。但是就是不成功,希望高手帮下忙!!谢谢!!
我的代码如下,不知道哪里的问题:
<table border="1px" bordercolor="silver">
<tr>
<td width="200px">表名</td>
<td width="100px">记录数</td>
<td width="100px">字段数</td>
<td width="300px">字段名列表</td>
</tr>
<s:iterator value="DBResult.keySet()" id="id">
<s:property value="#id"/>
<tr>
<s:iterator value="DBResult.get(#id).values()" id="table">
<td><s:property value="nameoftable"/></td>
<td><s:property value="amountofrecord"/></td>
<td><s:property value="amountoffield"/></td>
<td><s:property value="nameoffield"/></td>
</s:iterator>
</tr>
</s:iterator>
</table>
------解决方案--------------------
1.楼主用的DBResult.keySet() 不建议这样用 因为在jsp里面直接掉用函数不和谐 你也会不知道具体发生错误的原因 你可以在你的action里面直接 request.put("你的自定义数据标示",数据); 我用的是list
然后要注意你定义的传送数据的name要和jsp里面的一致
<s:iterator value="#request.list" id="us">
<tr>
<td><s:property value="#us.id"/>
</td>
<td><s:property value="#us.firstname"/>
</td>
<td><s:property value="#us.lastname"/>
</td>
<td><s:property value="#us.age"/>
</td>
</tr>
</s:iterator>
------解决方案--------------------赞同楼上
------解决方案--------------------我用的list, 没有用过map来转发数据
支持楼上的看法
------解决方案--------------------<s:iterator value="#request.list" id="n" status="st">
<s:property value="key"/>=<s:property value="value"/>// key为map中的key,value就是你的对象
</s:iterator>
------解决方案--------------------