读书人

ibatis spring struts 简易分页展示

发布时间: 2012-09-06 10:37:01 作者: rapoo

ibatis spring struts 简易分页显示,功能简单

下面为查询所显示的分页,关键技术在:1、只从数据库读取指定数量的数据

??????????????????????????????????????????????????? 2、点击下一页时,能够保存条件,用同样的条件进行查询显示

??????????????????????????????????????????????????? 3、日期在前台的显示

1、返回的对象类的DTO为

MatchMedicineDto.java

package com.yihaodian.pis.dto;import java.util.ArrayList;import java.util.Date;import java.util.List;import com.yihaodian.pis.util.DateFormatUtil;public class MatchMedicineDto {/** 存储的ID */private Integer id ;/** 一号店商品编号 */    private Integer productId;        /** 一号店商品名 */    private String productCname;        /** 一号店商品编码 */    private String productCode = null;    /** 目标商品名 */    private String name;        /** 目标商品URL */    private String pageUrl;        /** 一号店分类id */    private Integer categoryId = null;        private String categoryName;              private Integer siteId;    /** 目标网站 名 */    private String siteName;    /** 匹配时间 */    private Date matchTime;        private String matchTimeStr;        /**标志是1一号店还是2药网的信息 */    private Integer ownSiteId = 1;        private String condition;    private Integer currentPage=1;private Integer iDisplayStart = 0;private Integer iDisplayLength = 20;private Integer pageCount;private List<Integer> catIdsIn;//将这个实体类里的几个属性变为一个字符串数组//public String[] toArray(int indexNum) {//String[] ret = new String[7];////ret[0] = "<input type=\"checkbox\"  name=\"matchId\" onclick=\"chooseMatch()\" value=\""+productId+"\"/>" ;//ret[1] = "<a href=\"http://www.111.com.cn/product/"+((productId/10)%10000000)*10000000+"\">"+productCname+"</a>" ;//ret[2] = ""+productCode;//ret[3] = ""+categoryName;//ret[4] = siteName;//ret[5] = "<a href=\""+pageUrl+"\" target=\"_blank\">"+name+"</a>";//ret[5] =  DateFormatUtil.getDate(matchTime, "yyyy-MM-dd");////return ret;//}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getProductId() {return productId;}public void setProductId(Integer productId) {this.productId = productId;}public String getProductCname() {return productCname;}public void setProductCname(String productCname) {this.productCname = productCname;}public String getProductCode() {return productCode;}public void setProductCode(String productCode) {this.productCode = productCode;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPageUrl() {return pageUrl;}public void setPageUrl(String pageUrl) {this.pageUrl = pageUrl;}public Integer getCategoryId() {return categoryId;}public void setCategoryId(Integer categoryId) {this.categoryId = categoryId;}public String getCategoryName() {return categoryName;}public void setCategoryName(String categoryName) {this.categoryName = categoryName;}public Integer getSiteId() {return siteId;}public void setSiteId(Integer siteId) {this.siteId = siteId;}public String getSiteName() {return siteName;}public void setSiteName(String siteName) {this.siteName = siteName;}public Date getMatchTime() {return matchTime;}public void setMatchTime(Date matchTime) {this.matchTime = matchTime;}public Integer getCurrentPage() {return currentPage;}public void setCurrentPage(Integer currentPage) {this.currentPage = currentPage;}public Integer getiDisplayStart() {return iDisplayStart;}public void setiDisplayStart(Integer iDisplayStart) {this.iDisplayStart = iDisplayStart;}public Integer getiDisplayLength() {return iDisplayLength;}public void setiDisplayLength(Integer iDisplayLength) {this.iDisplayLength = iDisplayLength;}public Integer getPageCount() {return pageCount;}public void setPageCount(Integer pageCount) {this.pageCount = pageCount;}public String getCondition() {return ownSiteId+","+productCode+","+siteId+","+categoryId;}public void setCondition(String condition) {this.condition = condition;}public Integer getOwnSiteId() {return ownSiteId;}public void setOwnSiteId(Integer ownSiteId) {this.ownSiteId = ownSiteId;}public List<Integer> getCatIdsIn() {return catIdsIn;}public void setCatIdsIn(List<Integer> catIdsIn) {this.catIdsIn = catIdsIn;}public String getMatchTimeStr() {java.text.DateFormat   format=new   java.text.SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");String   dateString=format.format(matchTime);return dateString;}public void setMatchTimeStr(String matchTimeStr) {this.matchTimeStr = matchTimeStr;}}

?2、MedicineAction.java

在这里得到LIST,以及从数据库读取的起始位置和长度的设置

public class MedicineAction extends StrutsActionAdapter {/** * author : 向旗 */private static final long serialVersionUID = 1L;/** 匹配商品列表 */private List<MatchMedicineDto> matchMedicineList;/** 列表 */private MatchProductService matchProductSvc;/** 药网目录提取 */private MedicineDao medicineDao;    /** 产品匹配记录id */    private int matchId;    /** 产品匹配记录id集合 */    private String matchIds;    private MatchProductDao matchProductDao;/** 第一级目录 */private List<MedicineCategoryDto> firstLevelCate;/** 父类的ID值 */private Integer parentCategoryId;/** 临时存商品编码的信息 */ /** 商品抓价业务接口 */    private CurrentPriceService currentPriceSvc;    /** 商品历史价格业务接口 */    private HistoryPriceService historyPriceSvc;    /** 异常错误信息 */    private String message;private MatchMedicineDto matchMedicineDto = new MatchMedicineDto();/** 临时转存搜索条件信息*/private MatchMedicineDto mmDto = new MatchMedicineDto();private Integer pageNum = 1;private Integer next = 0 ; private String condition;public String queryMedicineByCode() {if (next == 1) {String[]conf = condition.split(",");mmDto.setOwnSiteId(Integer.parseInt(conf[0]));mmDto.setProductCode(conf[1]);mmDto.setSiteId(Integer.parseInt(conf[2]));if (conf[3].equals(null) || conf[3].equals("null")) {mmDto.setCategoryId(null);}else{mmDto.setCategoryId(Integer.parseInt(conf[3]));List<Integer> cl=new ArrayList<Integer>();if(medicineDao.getCategoryNameById(mmDto.getCategoryId()).getCategoryIsLeaf()==1){cl.add(mmDto.getCategoryId());}else{List<CategoryDto> categoryList = medicineDao.getCategoryChilds(mmDto.getCategoryId());List<CategoryDto> fCategoryList =new ArrayList<CategoryDto>();for(int i = 0;i<categoryList.size();i++){if(categoryList.get(i).getCategoryIsLeaf()==1)fCategoryList.add(categoryList.get(i));elsefCategoryList.addAll(medicineDao.getCategoryChilds(categoryList.get(i).getId()));}for(int i=0;i<fCategoryList.size();i++){cl.add(fCategoryList.get(i).getId());}}mmDto.setCatIdsIn(cl);}Integer count = matchProductDao.searchMeCountByCode(mmDto);mmDto.setPageCount((count+19)/20);if (pageNum==0) {pageNum = 1;}else if (pageNum > ((count+19)/20)) {pageNum = ((count+19)/20);}mmDto.setCurrentPage(pageNum);mmDto.setiDisplayStart((mmDto.getCurrentPage()-1)*20);matchMedicineList  =  matchProductDao.searchMeByCode(mmDto);matchMedicineDto = mmDto;}else {if (matchMedicineDto.getCategoryId() == 0) {matchMedicineDto.setCategoryId(null);matchMedicineDto.setCatIdsIn(null);}else{List<Integer> cl=new ArrayList<Integer>();if(medicineDao.getCategoryNameById(matchMedicineDto.getCategoryId()).getCategoryIsLeaf()==1){cl.add(matchMedicineDto.getCategoryId());}else{List<CategoryDto> categoryList = medicineDao.getCategoryChilds(matchMedicineDto.getCategoryId());List<CategoryDto> fCategoryList =new ArrayList<CategoryDto>();for(int i = 0;i<categoryList.size();i++){if(categoryList.get(i).getCategoryIsLeaf()==1)fCategoryList.add(categoryList.get(i));elsefCategoryList.addAll(medicineDao.getCategoryChilds(categoryList.get(i).getId()));}for(int i=0;i<fCategoryList.size();i++){cl.add(fCategoryList.get(i).getId());}}matchMedicineDto.setCatIdsIn(cl);}Integer count = matchProductDao.searchMeCountByCode(matchMedicineDto);matchMedicineDto.setPageCount((count+19)/20);matchMedicineDto.setCurrentPage(pageNum);matchMedicineDto.setiDisplayStart((matchMedicineDto.getCurrentPage()-1)*20);matchMedicineList  =  matchProductDao.searchMeByCode(matchMedicineDto);}//下位读取种类名称的代码for(int i =0;i<matchMedicineList.size();i++){CategoryDto cd = medicineDao.getCategoryNameById(matchMedicineList.get(i).getCategoryId());matchMedicineList.get(i).setCategoryName(cd.getCategoryName());}return "queryMedicineByCode";}}

?3、页面的相关设置,以及跳转的参数传递

querymedicine.jsp

<table id="queryResultTbl"><thead><tr id="headTitle">    <th  style="background-color: #5eaeae" ><input type="checkbox" id="chooseBox" onchange = "chooseAll()"/>    全选</th><th  style="background-color: #5eaeae" >药网商品链接</th><th  style="background-color: #5eaeae" >商品编码</th><th  style="background-color: #5eaeae" >药网分类</th><th  style="background-color: #5eaeae" >目标网站</th><th  style="background-color: #5eaeae" >目标商品链接</th><th  style="background-color: #5eaeae" >商品匹配时间</th></tr></thead><tbody id="tobyContent" style="text-align:center"><s:iterator value="matchMedicineList" id="matchMedicine" status="coll"><tr align="center"><td><input type="checkbox"  name="matchId" onclick="chooseMatch()" value="${matchMedicine.id}"/></td><td><a href="http://www.111.com.cn/product/${matchMedicine.productId}">${matchMedicine.name}</a></td><td>${matchMedicine.productCode}</td><td>${matchMedicine.categoryName}</td><td>${matchMedicine.siteName}</td><td><a href="${matchMedicine.pageUrl}" target="_blank">${name}</a></td><td>${matchMedicine.matchTimeStr}</td></tr></s:iterator></tbody><tr><td><div><a href="medicineAction_queryMedicineByCode.action?next=1&pageNum=1&condition=${matchMedicineDto.condition}">首页</a><a href="medicineAction_queryMedicineByCode.action?next=1&pageNum=${matchMedicineDto.currentPage+1}&condition=${matchMedicineDto.condition}">下一页</a><a href="medicineAction_queryMedicineByCode.action?next=1&pageNum=${matchMedicineDto.currentPage-1}&condition=${matchMedicineDto.condition}">上一页</a><a href="medicineAction_queryMedicineByCode.action?next=1&pageNum=${matchMedicineDto.pageCount}&condition=${matchMedicineDto.condition}">尾页</a><span>总共${matchMedicineDto.pageCount}页</span> </div></td></tr><tr><td><input type="button" value="删 除" onclick="delMatch()" id="delbutton"/></td></tr></table>

?不懂的问QQ526151410

读书人网 >Web前端

热点推荐