# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2008-03-21 01:10 by
你好,有这样一个问题请教:
Action里面有一个map已经传到页面,定义如下:
map bookCategoryMap<Ingerer,String>={"1":"计算机书籍","2":"文学书籍"}
在页面有一个book的list,在<s:iterator>中遍历book,book有一个字段category是int,现在要显示跟 bookCategoryMap对应的字符串,如book.category为1则显示"计算机书籍",请问表达式应该怎样写? 在iterator里面总是取不到外面的map的值
谢谢!
# re: struts2使用iterator标签显示嵌套Map[未登录] 回复 更多评论
2008-03-21 08:40 by
@求助
我没有能够完全你的意思,我的理解是你有一个Map,想在iterator中使用Map的Key取出相应的值显示出来,不知道是不是这样。
根据我的理解,你可以试一下这样(其中bookMap是一个Map)
<s:iterator value="bookMap.keySet()" id="bookId">
<tr>
<td>
<s:property value="bookMap.get(#bookId)"/>
</td>
</tr>
</s:iterator>
# re: struts2使用iterator标签显示嵌套Map[未登录] 回复 更多评论
2008-03-21 08:45 by
我再看了一遍你的回复,有了新的理解。
你有一个Book的List和另一个Category的Map
Book类中存储的是Category的id,你想在显示的Book的时候显示Category这个Map中Category Id对应的Category名称。是不是这样?
那你可以参考我的这篇文章:
使用struts2中的ognl表达式显示数据表字典项的值
http://www.blogjava.net/usherlight/archive/2008/03/17/186730.html
# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2008-03-21 14:54 by
@我再看了一遍你的回复,有了新的理解。
感谢你的及时回复,可能我表达的不是很清楚,呵呵,你后面的回复(2008-03-21 08:45 )正是我想要的,我采取的办法也是你在那篇文章里面的办法:"在iBatis中使用SqlMap从表中将数据取出,此时不使用数据表的连接".
1)我现在的环境是struts2+ejb3+jboss4.2,因为jboss的实现是用hibernate的
2)因为有很多种这样的情况,所以我想如果每个字典表都提供一个类似于Category 的class会加大工作量,需要改很多地方.所以想只提供一个map和一个booklist到页面,book只存一个bookCategoryId,然后直接把map传到页面,在iterator的时候只要取到map里面的name就可以了.
我现在的做法是在iterator的外面定义了一个set如下:<s:set name="cateMap" value="bookCategoryMap" />,然后在iterator里面用book的cateId从cateMap取cateName,但是我总取不到map里面的值,问题是:a)id是int的,而map里面的key是Integer的,需要转换 b)我用你介绍的方法好像不支持,可能是我语法没写对,再多试试,呵呵
谢谢!
# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2008-03-21 15:25 by
问题解决了,谢谢云水兄弟:)
在java类里面添加一个方法getCateNameById,然后用@classname@methodName,
谢谢!!!!!!!!!!!!
# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2008-04-17 09:24 by
我想问一个问题.
我有一个list list里面是hashmap
应该如何实现显示所有的数据?
谢谢了.另外这种表达式,是参考什么写法的?基于什么标准的?是struts2的?还是jsp servlet自带的?
# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2008-04-19 18:54 by
@richpencil
你是想怎么显示这个list呢?
文中的标签是Struts2带的。
表达式是ognl的
# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2008-10-27 09:24 by
请问 struts 2.0 的 页面是 $ % # 有什么区别 都在什么情况下用
# re: struts2使用iterator标签显示嵌套Map 回复 更多评论
2009-04-10 10:14 by
楼主:
我有个问题:在action里有两个list(list1,list2),list1在表1里读取数据,然后读取list1里每一项的id,再根据id在另一个表(表2)中读取数据存在list2里面,我如果要在页面显示两个list里的属性。应该怎么实现啊?如果用两个迭代的话,list2的数据始终是最后一条啊。