使用到的技术:

·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&nbsp;<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&nbsp;&nbsp; ";
html += "<a href='javascript:void' onclick='GoToPrePage()' id='aPrePage' >Pre&nbsp;&nbsp; ";
html += "<a href='javascript:void' onclick='GoToNextPage()' id='aNextPage'>Next&nbsp;&nbsp; ";
html += "<a href='javascript:void' onclick='GoToEndPage()' id='aEndPage' >Last&nbsp;&nbsp; ";
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 分页的更多相关文章

  1. spring mvc接收ajax提交的JSON数据,并反序列化为对象

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

  2. spring mvc 和ajax异步交互完整实例

    Spring MVC 异步交互demo: 1.jsp页面: <%@ page language="java" contentType="text/html; cha ...

  3. spring mvc 接收ajax 复杂结构数据

    1. 前段将要发送的信息转换成json字符串 2. spring mvc 使用 @RequestBody 来接收字符串,然后解析

  4. Spring mvc 下Ajax获取JSON对象问题 406错误

    我在学习springmvc过程中(我的项目是配置的后缀是.html),从controller返回对象. 如果我不使用 mvc-annotation-driver,而是手动配置,AnnotationMe ...

  5. Spring mvc下Ajax获取JSON对象问题 406错误

    spring 通过@ResponseBody标签返回JSON数据的方法都报406错: Failed to load resource: the server responded with a stat ...

  6. Spring MVC 中 AJAX请求并返回JSON

    一.以ModelAndView的方式返回 先看下JavaScript代码: /** * 保存-同步(版本控制库) */ function saveSynchronizedVcHorse(obj) { ...

  7. java之spring mvc之ajax

    1.可以使用servletAPI来实现 ajax Controller 类 @Controller public class AjaxController { @RequestMapping(&quo ...

  8. spring mvc框架+ ajax实现 文件上传

    1.前端页面,通过form表单提交,必须设置 enctype="multipart/form-data" 代表form表单在发送到服务器时候编码方式是二进制类型,一般用于图片.mp ...

  9. Spring MVC中Ajax实现二级联动

    今天写项目遇到了二级联动,期间遇到点问题,写个博客记录一下. 后台Controller: @RequestMapping("/faultType") @ResponseBody p ...

随机推荐

  1. c++程序内存泄露检測工具

    功能: 用于检測c++程序的内存泄露. 原理: 事实上非常easy,就是通过函数的重载机制,捕获应用程序的new, new[] , delete , delete[], malloc,calloc,f ...

  2. Swift 中类的初始化器与继承

    首先,Swift 为类定义了两种初始化器来确保类中所有的储存属性都能得到一个初始化值.这两种初始化器就是「指定初始化器」(Designated Initializer)与「便利初始化器」(Conven ...

  3. 嵌入式系统 Boot Loader

    基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念.软件设计的主要任务以及结构框架等内容.

  4. mac outlook无法发送邮件

    工具-帐户 第一步把SSL钩挑上 第二步 下面的更多选项,验证选择“使用接收服务器信息” 搞定了!记得个赞!

  5. 神奇的魔法数字0x61c88647

    来源JDK源码,产生的数字分布很均匀 用法代码如下. # -*- coding: utf-8 -*- HASH_INCREMENT = 0x61c88647 def magic_hash(n): fo ...

  6. R语言学习笔记之外部文件读取

    在win32位的系统下,RODBC包内的函数是可以直接运行的,但在win64位的系统则不支持! 1.读取外部文件read.table()---csv,txt,excel 最基本函数是read.tabl ...

  7. (Problem 42)Coded triangle numbers

    The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangl ...

  8. 怪兽z主机 驱动集

    这里给买家朋友送上我们主机的驱动包. 1.主板驱动.  访问密码 f334 http://yunpan.cn/QNTGxehcnLBW5 2.AMD显卡催化剂 amd catalyst(没装的话,无法 ...

  9. VB6.0快捷键大全(转)

    窗体设置,控件布局时用: alt+v+x可以快速显示出工具框 Alt+P+N 引用 ctrl+左右键头可以移动控件 shift+左右键头调整控件大小 F7   切换到编辑窗口 Shift+f7 切换代 ...

  10. Protel 99SE铺铜问题总结

    一.PCB电路板放置铺铜有什么作用? 散热: 屏蔽 抗干扰 pcb板子带有寄生电容: 提高板子强度: 美观: 增加被抄板的难度,尤其是覆铜+黑油.   二.PROTEL不规则铺铜的方法: 1.先要知道 ...