云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

struts2使用iterator标签显示嵌套Map

Posted on 2008-01-25 13:16 云自无心水自闲 阅读(15278) 评论(10)  编辑  收藏 所属分类: Java心得体会Struts2
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<s:head />
    
</head>

    
<body>

        
<table border="1">
            
<s:iterator value="dataMap.keySet()" id="class">
                
<s:iterator value="dataMap.get(#class).keySet()" id="group">
                
<tr>
                    
<td><s:property value="group"/></td>
                    
<s:iterator value="dataMap.get(#class).get(#group).values()" id="name">
                        
<td><s:property value="name"/></td>
                    
</s:iterator>
                
</tr>
                
</s:iterator>
            
</s:iterator>
        
</table>
    
</body>
</html>



评论

# 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 richpencil
我想问一个问题.

我有一个list list里面是hashmap

应该如何实现显示所有的数据?

谢谢了.另外这种表达式,是参考什么写法的?基于什么标准的?是struts2的?还是jsp servlet自带的?

# re: struts2使用iterator标签显示嵌套Map  回复  更多评论   

2008-04-19 18:54 by usherlight
@richpencil
你是想怎么显示这个list呢?
文中的标签是Struts2带的。
表达式是ognl的

# re: struts2使用iterator标签显示嵌套Map[未登录]  回复  更多评论   

2008-05-21 01:28 by a
ds

# re: struts2使用iterator标签显示嵌套Map  回复  更多评论   

2008-10-27 09:24 by
请问 struts 2.0 的 页面是 $ % # 有什么区别 都在什么情况下用

# re: struts2使用iterator标签显示嵌套Map  回复  更多评论   

2009-04-10 10:14 by xwf
楼主:
我有个问题:在action里有两个list(list1,list2),list1在表1里读取数据,然后读取list1里每一项的id,再根据id在另一个表(表2)中读取数据存在list2里面,我如果要在页面显示两个list里的属性。应该怎么实现啊?如果用两个迭代的话,list2的数据始终是最后一条啊。

只有注册用户登录后才能发表评论。


网站导航: