spring mvc实现ajax 分页
使用到的技术:
·spring 3 mvc
·json
·jquery
·java
·mysql
首先,要了解如何在spring
mvc中使用json。
以下主要从Dao和View及Controller来分析:
Dao层:
public List<</span>Position> getPagePosition(int pageNum,int pageSize){
//select * from t_position order by id desc limit (pageNum-1)*pagesize , pagesize
List<</span>Position> list = jdbc.query("select * from position order by id desc limit ?,? ", new Object[]{(pageNum-)*pageSize>=?(pageNum-)*pageSize:,pageSize},
new RowMapper<</span>Position>() {
public Position mapRow(ResultSet rs, int rowNum)
throws SQLException {
return populate(rs);
}
}
);
return list;
}
Controller中代码:
@RequestMapping("/positionlist")
public String listPosition(Model model,
@RequestParam(value = "pagesize", required = false, defaultValue = "") int pagesize,
@RequestParam(value = "pagenum", required = false, defaultValue = "") int pagenum){
int recordCount = positionMgr.getAll().size();
int pageCount = (recordCount+pagesize-)/pagesize ;
model.addAttribute("pageTitle", "Position List");
return "positionlist";
}
@RequestMapping("/positionlistajax")
public @ResponseBody List<</span>Position> listPositionDo(Model model,
@RequestParam(value = "pagesize", required = false, defaultValue = "") int pagesize,
@RequestParam(value = "pagenum", required = false, defaultValue = "") int pagenum){
List<</span>Position> ret = positionMgr.getPagePosition(pagenum, pagesize);
return ret;
}
View层:
<</span>script type="text/javascript">
var pageIndex = ;
var pageSize = ;
$(function () { pageIndex = ;
AjaxGetData(pageIndex, pageSize); }); function AjaxGetData( index, size) {
$.ajax({
url: "${pageContext.request.contextPath}/positionlistajax",
type: "Get",
data: "pagenum=" + index + "&pagesize=" + size,
dataType: "json",
success: function (json) { var html = "";
html += "<table>";
html += "<thead>";
html += "<tr><th colspan=7 >Position List</th></tr>";
html += "<tr><th>ID</th><th>Name</th><th>Location</th><th>Nature</th><th>Number</th><th>End Date</th><th>Operation</th></tr>"; html += "</thead>";
html += "<tbody>";
for(position in json){
html += "<tr>";
html += "<td>"+json[position].id+"</td>";
html += "<td>"+json[position].name+"</td>";
html += "<td>"+json[position].location+"</td>";
html += "<td>"+json[position].nature+"</td>";
html += "<td>"+json[position].number+"</td>";
html += "<td>"+json[position].endDate+"</td>";
html += "<td><a href='editposition?id="+json[position].id+"'>Edit <a href='position?id="+json[position].id+"'>View</td>";
html += "</tr>"; }
html += "</tbody>"; html += "<tfoot>";
html += "<tr>";
html += "<td colspan='7'>";
html += "<span>Total Records:" + ${recordCount} + "; Total Page:<span id='count'>" +${pageCount} + "" + "";
html += "<a href='javascript:void' onclick='GoToFirstPage()' id='aFirstPage' >First ";
html += "<a href='javascript:void' onclick='GoToPrePage()' id='aPrePage' >Pre ";
html += "<a href='javascript:void' onclick='GoToNextPage()' id='aNextPage'>Next ";
html += "<a href='javascript:void' onclick='GoToEndPage()' id='aEndPage' >Last ";
html += "<input type='text' size='4' /><input type='button' value='Jump' onclick='GoToAppointPage(this)' /> ";
html += "</td>";
html += "</tr>";
html += "</tfoot>";
html += "</table>";
//alert(html);
$('#divResult').html("");
$('#divResult').html(html); },
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
}
});
} function GoToFirstPage() {
pageIndex = ;
AjaxGetData( pageIndex, pageSize);
} function GoToPrePage() {
pageIndex -= ;
pageIndex = pageIndex >= ? pageIndex : ;
AjaxGetData( pageIndex, pageSize);
} function GoToNextPage() {
if (pageIndex <</span> parseInt($("#count").text())) {
pageIndex += ;
}
AjaxGetData( pageIndex, pageSize);
} function GoToEndPage() {
pageIndex = parseInt($("#count").text()) ;
AjaxGetData( pageIndex, pageSize);
} function GoToAppointPage(e) {
var page = $(e).prev().val();
if (isNaN(page)) {
alert("Page should be a valid number");
}
else {
var tempPageIndex = pageIndex;
pageIndex = parseInt($(e).prev().val());
if (pageIndex <</span>= || pageIndex > parseInt($("#count").text())) {
pageIndex = tempPageIndex;
alert("Please input valid page scope!");
}
else {
AjaxGetData(pageIndex, pageSize);
}
}
}
<</span>/script>
<</span>div id="divResult" ><</span>/div>
spring mvc实现ajax 分页的更多相关文章
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
- spring mvc 和ajax异步交互完整实例
Spring MVC 异步交互demo: 1.jsp页面: <%@ page language="java" contentType="text/html; cha ...
- spring mvc 接收ajax 复杂结构数据
1. 前段将要发送的信息转换成json字符串 2. spring mvc 使用 @RequestBody 来接收字符串,然后解析
- Spring mvc 下Ajax获取JSON对象问题 406错误
我在学习springmvc过程中(我的项目是配置的后缀是.html),从controller返回对象. 如果我不使用 mvc-annotation-driver,而是手动配置,AnnotationMe ...
- Spring mvc下Ajax获取JSON对象问题 406错误
spring 通过@ResponseBody标签返回JSON数据的方法都报406错: Failed to load resource: the server responded with a stat ...
- Spring MVC 中 AJAX请求并返回JSON
一.以ModelAndView的方式返回 先看下JavaScript代码: /** * 保存-同步(版本控制库) */ function saveSynchronizedVcHorse(obj) { ...
- java之spring mvc之ajax
1.可以使用servletAPI来实现 ajax Controller 类 @Controller public class AjaxController { @RequestMapping(&quo ...
- spring mvc框架+ ajax实现 文件上传
1.前端页面,通过form表单提交,必须设置 enctype="multipart/form-data" 代表form表单在发送到服务器时候编码方式是二进制类型,一般用于图片.mp ...
- Spring MVC中Ajax实现二级联动
今天写项目遇到了二级联动,期间遇到点问题,写个博客记录一下. 后台Controller: @RequestMapping("/faultType") @ResponseBody p ...
随机推荐
- MyEclipse性能调优初体验
MyEclipse性能调优初体验 简介一下工作环境,MyEclipse2014,你懂的 项目中有一个基于web的工作流引擎,仅仅要执行起来就CPU差点儿耗尽(尽管看似27%,事实上已经把俺4核的CPU ...
- 设计模式入门之桥接模式Bridge
Abstraction:抽象部分的父类,定义须要实现的接口.维护对实现部分的引用,从而把实现桥接到Implementor中去 Implementor:实现部分的接口 RefinedAbstractio ...
- ASP.NET性能监视参数详解
性能监视器- Performance Monitor 性能监视器是Windows自带的系统资源和性能监视工具. 性能监视器能够量化地提供CPU使用率, 内存分配状况, 异常派发情况, 线程调度频率等信 ...
- cocos2d-x中的CCScrollView滑动体验不佳
在最近的项目中,使用了Cocos2d-x (2.2.0版本)提供的CCScrollView来拖动一个比较大的画面,但是发现滑动体验非常不佳, 手指离开屏幕后,滑动没有惯性,一个不算太大的画面,要滑动好 ...
- virtualbox 中安装win7虚拟机
下载了win7镜像文件后,在virtualbox中装了几次都提示 windows faied to start,后来在网上找了些解决办法,在这记录下,免得下次又忘了 创建新的虚拟机: 1.安装virt ...
- Myeclipse安装Activiti
1.将压缩包内activiti文件夹放入Myeclipse\dropins文件夹内并修改activiti文件夹内Link文件指向自己的目录重启Myeclipse(这时打开bpmn文件仍会报错).2.将 ...
- Python正则表达式一: 基本使用方法
学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...
- linux-0.11抠代码-GDB+VMWARE
vmware新建一个虚拟机,硬盘为0.1G,建立完成后要先启动一次虚拟机,此时无任何系统,然后再关闭,应该会多出一个ostest-flat.vmdk这个虚拟磁盘文件,下面要用到 新建完成后 我的虚拟机 ...
- STL algorithm算法mismatch(37)
mismatch原型: std::mismatch equality (1) template <class InputIterator1, class InputIterator2> p ...
- hdu5115 Dire Wolf【区间dp】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4361169.html ---by 墨染之樱花 [题目链接]http://acm.hdu.e ...