读书人

jstl遍历listlt;maplt;user,listlt;casesgt;gt;amp;

发布时间: 2012-07-27 11:03:00 作者: rapoo

jstl遍历list<map<user,list<cases>>>

最近项目需要搜索出全部的代理人信息及代理人的案例信息,展示到页面的效果如图:

?

jstl遍历list<map<user,list<cases>>&gt

?

以上结果展示出了代理人的相关信息,及这个人的案例信息。

?

/** * 搜索保险代理人 * */@RequestMapping(value = "/search")public String indexSearch(ModelMap modelMap) {// 可以抽取出单独的方法UDBUserDao userDao = AppContext.getBean("userDao", UDBUserDao.class);CasesDao caseDao = AppContext.getBean("casesDao", CasesDao.class);String name = this.request.get().getParameter("searchname") == null ? "": this.request.get().getParameter("searchname");int pageSize = AppUtils.getIntValue(CMConfig.getProperty("pageSize"));int currPageNum = AppUtils.getIntPage(this.request.get().getParameter("page.currPageNum"));page.setCurrPageNum(currPageNum);page.setPageSize(pageSize);StringBuffer sql = new StringBuffer();sql.append("  and  name like '%").append(name).append("%'").append(" and status & ").append(JournalDaily.STATUS_DELETED).append(" != ")// 未删除.append(JournalDaily.STATUS_DELETED);page.init(AppConstant.DATABASE_SCHEMA_UDB_BB_USER + "."+ AppConstant.DATABASE_TABLE_UDB_USER," CONVERT( name USING gbk ) COLLATE gbk_chinese_ci ", pageSize,page.getCurrPageNum(), sql.toString(), "");/* List<AccountUser> userlist = userDao.getSearchUser(name); */List<AccountUser> userlist = userDao.getSearchUser(page.getSQL());List<Map<AccountUser, List<Cases>>> usercases = new                 ArrayList<Map<AccountUser, List<Cases>>>();for (AccountUser accountUser : userlist) {Map<AccountUser, List<Cases>> m = new HashMap<AccountUser, List<Cases>>();List<Province> provinces = AppProvinceAndCity.provinces;if (accountUser.getProvince() == null) {accountUser.setCityname("(尚未填写地区)");} else {for (Province province : provinces) {if (province.getCode() == accountUser.getProvince()) {accountUser.setCityname(province.getValue());break;}}}List<Cases> clist = caseDao.criteriaQueryByUserid(accountUser.getUid(), "  order by createtime desc");ArrayList<ListItem> list = AppConstant.INSURANCE_COMPANY;for (ListItem listItem : list) {if (accountUser.getCompany() == listItem.getKey()) {accountUser.setCompanyname(listItem.getValue());break;}}m.put(accountUser, clist);usercases.add(m);}modelMap.put("page", page);modelMap.put("searchname", name);modelMap.put("usercases", usercases);this.model.get().addAttribute("title","搜索_" + CMConfig.getProperty("default.title"));return "search/search";}

?

List<Map<AccountUser, List<Cases>>> usercases = new ArrayList<Map<AccountUser, List<Cases>>>();

?

?? 注意:map 是无序插入数值的,跟list不同,如果采用map封装值的话,你会发现页面展示时候排序凌乱,而且每次访问都是不同的结果。

?

所以要封装到List里面,这就涉及到如何遍历问题。

?

遍历List 结果为map,map为 map<accountUser,List<cases>>

?

key,和value都是封装的,所以还需要遍历。

?

?

?

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ include file="/WEB-INF/view/includes.jsp"%><%@ include file="/WEB-INF/view/header.jsp"%><%String path = request.getContextPath();%><!--nav--><div id="nav_wrap"><ul id="nav"><li></li><li></li></ul></div><!--nav end--><!--search_content--><div id="search_content"><div value="${searchname}" /> <input type="submit" value="搜索"/></form></div><c:if test="${!empty usercases}"><h4 var="usercases"><c:forEach items="${usercases}" var="map"><div alt="jstl遍历list<map<user,list<cases>>&gt" /></a>         --><ahref='<spring:url value="/profile?uid=${map.key.uid}"></spring:url>'title="" target="_blank"><c:choose><c:when test="${empty map.key.photo}"><img src="/static/images/no_photo.png" alt="jstl遍历list<map<user,list<cases>>&gt"/></c:when><c:otherwise><img src="${map.key.photo}" alt="jstl遍历list<map<user,list<cases>>&gt"/></c:otherwise></c:choose><cite>${map.key.name}</cite></a>      ${map.key.companyname}     ${map.key.department} <br />手机:${map.key.cellphone}<p>我是来自${map.key.cityname=="省"?"暂无地区":map.key.cityname}的<cite>${map.key.name}</cite>。我愿竭尽全力让我的家人及朋友都拥有人寿保险的保障。无后顾之忧。愿所有的朋友都能一生太平安康!长命百岁!</p><dl><dt>最近案例:</dt><c:forEach items="${map.value }" var="cases" begin="0" end="1"><dd><ahref='<spring:url value="/cases/showCaseForFront?id=${cases.id}"></spring:url>'title="${cases.title}">${cases.title}</a>${cases.title}</dd>${cases.updatetime }            </c:forEach></dl></div></c:forEach></c:forEach><!--pages--><div currentPage="${page.currPageNum}"countSize="${page.rowCounts}" pageKey="page.currPageNum"params="{searchname:${searchname}}" pageSize="${page.pageSize}"selectPage="select" /></c:if></div></div><!--pages end--><!--no_result--><c:if test="${empty usercases}"><p value="${searchname}" /> <input type="submit" value="搜索"/></form></div></div><%@ include file="/WEB-INF/view/footer.jsp"%>
?

以上涉及三重遍历。

读书人网 >JavaScript

热点推荐