在jsp页面中中包含输入条件查询,输入条件后查询第一页正常,但是翻页后条件就无效了

a123456horizon 2016-08-19 03:39:20
<%
FlowCardService flowCardService = (FlowCardService)this.getServletContext().getAttribute(FlowCardService.class.getName());
int pageNo = 1;
int pageSize = 2;

String clientId = request.getParameter("clientId");
if (clientId == null) {
clientId = "";
}

String clientName = request.getParameter("clientName");
if (clientName == null) {
clientName = "";
}

String beginDate = request.getParameter("beginDate");
if (beginDate == null) {
beginDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
}

String endDate = request.getParameter("endDate");
if (endDate == null) {
endDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
}

PageModel pageModel = flowCardService.findAllFlowCard(pageNo, pageSize, clientId, beginDate, endDate);

String queryCon = "&clientId=" + clientId + "&clientName=" + clientName + "&beginDate=" + beginDate + "&endDate=" + endDate;
System.out.println(queryCon);
%>

//JavaScript中的相关代码
function topPage() {
window.self.location = "flow_card_maint.jsp?pageNo=1<%=queryCon%>";
}

function previousPage() {
window.self.location = "flow_card_maint.jsp?pageNo=<%=pageModel.getPreviousPageNo()%><%=queryCon%>";
}

function nextPage() {
window.self.location = "flow_card_maint.jsp?pageNo=<%=pageModel.getNextPageNo()%><%=queryCon%>";
}

function bottomPage() {
window.self.location = "flow_card_maint.jsp?pageNo=<%=pageModel.getBottomPageNo()%><%=queryCon%>";
}

function queryFlowCard() {
with(document.forms[0]) {
action="flow_card_maint.jsp";
method="post";
submit();
}
}

说明:PageModel在其他页面都运行正常,加上了“<%=queryCon%>”后翻页功能失效!
queryCon打印出来的 “&clientId=2001&clientName=北京市中医药股份有限公司&beginDate=2016-08-01&endDate=2016-08-19”,也正常
...全文
207 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a123456horizon 2016-08-19
  • 打赏
  • 举报
回复
问题找到了,是一个小错误。忘了把 pageNo 的值重新传回来,应该在jsp中加入
String pageNoStr = request.getParameter("pageNo");
	if (pageNoStr != null && !"".equals(pageNoStr)) {
		pageNo = Integer.parseInt(pageNoStr);
	}
,不过还是感谢大家的帮忙!
小灯光环 2016-08-19
  • 打赏
  • 举报
回复
引用 7 楼 a123456horizon 的回复:
[quote=引用 5 楼 wlwlwlwl015 的回复:] "flow_card_maint.jsp?pageNo=<%=pageModel.getBottomPageNo()%><%=queryCon%>" pageNo是第一个参数,后面这个<%=queryCon%>应该是作为第二个参数吧,比如: pageNo=<%=pageModel.getBottomPageNo()%>&queryCon=<%=queryCon%>"
不用加queryCon吧, String queryCon = "&clientId=" + clientId + "&clientName=" + clientName + "&beginDate=" + beginDate + "&endDate=" + endDate;[/quote] 那就是翻页的时候条件参数缺失,比如你的queryCon在翻页的时候没有同时维护条件查询的参数,你输入条件查询,那个条件参数也是时刻都要带上的
Birds_Cerebrum 2016-08-19
  • 打赏
  • 举报
回复
引用 4 楼 a123456horizon 的回复:
[quote=引用 2 楼 Birds_Cerebrum 的回复:] 不好意思,刚才没看见你的分页
是我没写清楚,PageModel就是分页的 代码如下
public class PageModel {
	private List list;
	private int totalRecords;
	private int pageSize;
	private int pageNo;	
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public int getTotalRecords() {
		return totalRecords;
	}
	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageNo() {
		return pageNo;
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
	/**
	 * 总页数
	 * @return
	 */
	public int getTotalPages() {
		return (this.totalRecords + this.pageSize -1)/this.pageSize;
	}	
	/**
	 * 上一页
	 * @return
	 */
	public int getPreviousPageNo() {
		if(this.pageNo <= 1) {
			return 1;
		}
		return this.pageNo - 1;
	}	
	/**
	 * 下一页
	 * @return
	 */
	public int getNextPageNo() {
		if (this.pageNo >= this.getBottomPageNo()) {
			return this.getBottomPageNo();
		}
		return this.pageNo + 1;
	}
	/**
	 * 尾页
	 * @return
	 */
	public int getBottomPageNo() {
		return this.getTotalPages();
	}
}
这个在其他页面都分页成功过。[/quote] int pageNo = 1; int pageSize = 2; 别放在这个页面里边,放在你实现分页的方法里边,如果页面传页码到后台了就用传来的页码,没传默认就是第一页,你现在每次一加载页面pageNo都是1.
a123456horizon 2016-08-19
  • 打赏
  • 举报
回复
引用 5 楼 wlwlwlwl015 的回复:
"flow_card_maint.jsp?pageNo=<%=pageModel.getBottomPageNo()%><%=queryCon%>" pageNo是第一个参数,后面这个<%=queryCon%>应该是作为第二个参数吧,比如: pageNo=<%=pageModel.getBottomPageNo()%>&queryCon=<%=queryCon%>"
不用加queryCon吧, String queryCon = "&clientId=" + clientId + "&clientName=" + clientName + "&beginDate=" + beginDate + "&endDate=" + endDate;
a123456horizon 2016-08-19
  • 打赏
  • 举报
回复
引用 3 楼 Birds_Cerebrum 的回复:
执行window.self.location之前把你的连接打印出来看一下
我在网页上 查看源文件 了, function topPage() { window.self.location = "flow_card_maint.jsp?pageNo=1&clientId=&clientName=&beginDate=2016-08-01&endDate=2016-08-19"; } function previousPage() { window.self.location = "flow_card_maint.jsp?pageNo=1&clientId=&clientName=&beginDate=2016-08-01&endDate=2016-08-19"; } function nextPage() { window.self.location = "flow_card_maint.jsp?pageNo=2&clientId=&clientName=&beginDate=2016-08-01&endDate=2016-08-19"; } function bottomPage() { window.self.location = "flow_card_maint.jsp?pageNo=3&clientId=&clientName=&beginDate=2016-08-01&endDate=2016-08-19"; } 点击下一页后,页面不改变,链接也没变
小灯光环 2016-08-19
  • 打赏
  • 举报
回复
"flow_card_maint.jsp?pageNo=<%=pageModel.getBottomPageNo()%><%=queryCon%>" pageNo是第一个参数,后面这个<%=queryCon%>应该是作为第二个参数吧,比如: pageNo=<%=pageModel.getBottomPageNo()%>&queryCon=<%=queryCon%>"
a123456horizon 2016-08-19
  • 打赏
  • 举报
回复
引用 2 楼 Birds_Cerebrum 的回复:
不好意思,刚才没看见你的分页
是我没写清楚,PageModel就是分页的 代码如下
public class PageModel {
	private List list;
	private int totalRecords;
	private int pageSize;
	private int pageNo;	
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public int getTotalRecords() {
		return totalRecords;
	}
	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageNo() {
		return pageNo;
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
	/**
	 * 总页数
	 * @return
	 */
	public int getTotalPages() {
		return (this.totalRecords + this.pageSize -1)/this.pageSize;
	}	
	/**
	 * 上一页
	 * @return
	 */
	public int getPreviousPageNo() {
		if(this.pageNo <= 1) {
			return 1;
		}
		return this.pageNo - 1;
	}	
	/**
	 * 下一页
	 * @return
	 */
	public int getNextPageNo() {
		if (this.pageNo >= this.getBottomPageNo()) {
			return this.getBottomPageNo();
		}
		return this.pageNo + 1;
	}
	/**
	 * 尾页
	 * @return
	 */
	public int getBottomPageNo() {
		return this.getTotalPages();
	}
}
这个在其他页面都分页成功过。
Birds_Cerebrum 2016-08-19
  • 打赏
  • 举报
回复
执行window.self.location之前把你的连接打印出来看一下
Birds_Cerebrum 2016-08-19
  • 打赏
  • 举报
回复
不好意思,刚才没看见你的分页
Birds_Cerebrum 2016-08-19
  • 打赏
  • 举报
回复
是框架带的分页吗?如果是那就去后台看看参数到底传过去了没,如果不是把分页的代码贴出来看看。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧