`

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));
					else
						fCategoryList.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));
					else
						fCategoryList.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 class="display" id="queryResultTbl">
	<thead>
		<tr id="headTitle">
		    <th  style="background-color: #5eaeae" ><input type="checkbox" id="chooseBox" onchange = "chooseAll()"/>&nbsp;&nbsp;&nbsp;&nbsp;全选</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="删 除" class="button2" onclick="delMatch()" id="delbutton"/></td></tr></table>

 不懂的问QQ526151410

分享到:
评论

相关推荐

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    综上所述,这个实例展示了如何整合Struts2、Spring、iBatis和Oracle来构建一个完整的Web应用,实现了动态分页搜索和附件上传功能。这种架构具有良好的可扩展性和可维护性,适用于各种中大型企业级项目。开发者可以...

    ibatis struts2 spring3 mybatis 分页 crud 完整代码

    这里我们讨论的是一个基于Ibatis、Struts2、Spring3的整合应用,涵盖了数据访问、业务逻辑和控制层的关键技术,以及分页和CRUD操作的实现。下面我们将详细探讨这些知识点。 1. **Ibatis**:Ibatis是一个优秀的持久...

    例1:struts2+spring+ibatis 实现分页

    以上就是使用Struts2、Spring和iBatis实现分页功能的基本流程。在实际开发中,你还需要考虑异常处理、国际化、性能优化等方面,确保应用的稳定性和用户体验。通过熟练掌握这三个框架的组合,你可以构建出强大且灵活...

    简单公文管理 struts+spring+ibatis+ajax 分页

    综上所述,"简单公文管理 struts+spring+ibatis +ajax 分页"是一个集成了多种技术的Web应用,它利用Struts进行页面控制,Spring管理业务逻辑,iBatis处理数据访问,Ajax提升用户体验,共同构建了一个高效、易用的...

    struts2 spring2 ibatis2 jquery json 页面无刷新分页

    Struts2、Spring2、iBatis2、jQuery 和 JSON 是构建现代Web应用程序的重要技术栈。这个项目似乎演示了如何利用这些技术实现页面无刷新分页功能,这在提升用户体验和提高网页性能方面非常关键。下面我们将详细探讨...

    struts2+spring+ibatis 实现分页.rar

    在这个"struts2+spring+ibatis 实现分页"的项目中,我们将探讨如何将这三个框架整合起来,实现一个高效的分页功能。 首先,Struts2作为前端控制器,它处理来自客户端的请求,并调度到相应的Action进行处理。在分页...

    struts+spring+ibatis+mysql实例

    struts spring ibatis mysql 分页,增删改查,以及导出excle

    struts2+spring+ibatis增删查改翻页代码示例

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架组合,它们协同工作能够构建出高效、灵活的企业级应用程序。在这个“struts2+spring+ibatis增删查改翻页代码示例”中,我们将深入探讨这三个框架如何协同实现...

    ssi_struts2_spring_ibatis 增删改查分页

    标题中的"ssi_struts2_spring_ibatis"指的是一个基于Java技术栈的Web应用程序开发框架组合,主要包括Struts2、Spring和iBatis。这三个组件是企业级Java应用中的常见选择,它们各自承担着不同的职责。 1. **Struts2*...

    struts+spring+ibatis(SSI)的最简分页及标签

    总结起来,"struts+spring+ibatis(SSI)的最简分页及标签"是一个关于如何在Java Web开发中结合Struts的MVC架构、Spring的依赖管理和iBatis的数据访问来实现分页功能以及创建自定义标签的实践。这个过程涉及到Struts的...

    spring struts2 ibatis easyui

    总结来说,"Spring Struts2 iBatis EasyUI"是一种常见的Java Web开发架构,通过合理利用各框架的特点,可以构建出功能强大、易于维护的Web应用。对于初学者而言,这个项目是一个极好的学习资源,可以帮助他们深入...

    Struts2-spring-ibatis 整合及存储过程分页

    通过以上步骤,你就成功地整合了Struts2、Spring和iBatis,并实现了存储过程分页。这样的架构有助于提高代码的模块化和可维护性,同时,存储过程的使用也能优化数据库查询性能。在实际开发中,还可以根据需求进一步...

    struts2+spring+ibatis学生管理demo

    Struts2+Spring+Ibatis学生管理Demo是一个典型的Java Web应用程序,它展示了如何将三个流行的开源框架——Struts2、Spring和Ibatis有效地集成在一起,用于构建高效且可维护的学生信息管理系统。在这个系统中,Struts...

    struts2+spring+ibatis

    在Struts2中,可以通过拦截器或者自定义插件来实现分页功能,而在iBatis中,可以通过编写动态SQL来实现分页查询。描述还指出“但是删除有毛病,把int改成bean就能运行了”,这可能是因为在执行删除操作时,原本直接...

    Spring集成struts2、ibatis、dwr、poi实现的demo

    使用Spring集成struts2、ibatis、poi实现的增删改查功能,包括采用jquery实现的无刷新查询机分页、dwr实现的两级联动、以及采用poi动态将数据库数据导出成excel,本demo采用mysql数据库,附有建表sql,项目导入...

    Struts2+Spring+IBatis实现CURD

    总结,"Struts2+Spring+IBatis"的组合提供了强大的Web应用开发能力,能够有效地解耦业务逻辑和数据访问,简化CRUD操作,并支持复杂的分页功能。对于初学者来说,理解并实践这样的框架集成,能提升对Java Web开发的...

    struts2+spring+ibatis实例

    总的来说,这个实例项目是一个基础的Java Web应用,展示了如何将Struts2、Spring和iBatis整合使用,实现CRUD操作和分页功能。通过学习和理解这个项目,开发者可以深入掌握这三大框架的协同工作方式,为构建更复杂的...

    Struts2+Spring2.5+Ibatis2.3架构

    Struts2+Spring2.5+Ibatis2.3架构是一种经典的Java Web开发技术栈,广泛应用于企业级应用系统中。这个架构结合了Struts2的MVC框架、Spring的依赖注入(DI)和面向切面编程(AOP)以及Ibatis的持久层解决方案,为...

    struts2+spring+ibatis整合

    ### Struts2 + Spring + iBatis 整合详解 #### 一、概述 随着企业级应用需求的不断增加,为了更好地实现项目的模块化管理和提高代码的可维护性,越来越多的项目选择采用MVC架构模式,并结合不同的框架进行开发。...

Global site tag (gtag.js) - Google Analytics