日期:2014-05-16 浏览次数:20456 次
最近项目需要搜索出全部的代理人信息及代理人的案例信息,展示到页面的效果如图:
?
?
以上结果展示出了代理人的相关信息,及这个人的案例信息。
?
/**
* 搜索保险代理人
* */
@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 class="search_type">
<form action='<spring:url value="/search"></spring:url>' method="post">
<input type="text" value="${searchname}" class="search_text"
name="searchname" /> <input type="submit" value="搜索"
class="search_button" />
</form>
</div&g