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 ...
随机推荐
- HDU3415:Max Sum of Max-K-sub-sequence(单调队列)
Problem Description Given a circle sequence A[1],A[2],A[3]......A[n]. Circle sequence means the left ...
- javascript数字验证输入
javascript数字验证功能: <html> <body> <p>请输入数字.如果输入值不是数字,浏览器会弹出提示框.</p> <input ...
- 初探ListView
ListView可能是Android开发中最常用的一个控件,但要用的纯熟还需要不断的锻炼. 建立简单的ListView 1.在布局文件(.xml)中添加<ListView>标签 2.在Ma ...
- android五种布局模式
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout (线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对 ...
- FPGA工程中用C语言对文件进行处理_生成mif文件
本博客中有用verilog处理文件数据的代码,本博文采用C 处理文件中的数据. 有时候要生成一个mif文件—— altera memory initial file.本次工程中我得到的是一个大型的数 ...
- AngularJS的启动引导过程
原文:http://www.angularjs.cn/A137?utm_source=ourjs.com 目录: 引导之前 自动引导启动框架 手工引导启动框架 引导第1步:创建注入器 引导第2步:创建 ...
- docker4dotnet
docker4dotnet #1 – 前世今生 & 世界你好 作为一名.NET Developer,这几年看着docker的流行实在是有些眼馋.可惜的是,Docker是基于Linux环境的 ...
- Strata 2014 上的 AzureCAT 粉笔会谈
本周,AzureCAT 团队非常高兴在 Strata 会议上首次集体亮相.对于那些对 AzureCAT 团队不太熟悉的人来说,我们是 Microsoft 云与企业部门一个核心的国际性团队,由大约 ...
- Binary Tree Level Order Traversal II --leetcode C++
考察点 广度优先遍历--层次遍历 STL内容器的用法 广度优先遍历的时候,首先应该想到的就是借助于队列.还需要在遍历下一层之前保存当前层节点的数量 代码很简单: class Solution { pu ...
- 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)
# -*- coding: utf-8 -*- #code:myhaspl@myhaspl.com #邻域平均法滤波,半径为2 import cv2 import numpy as np fn=&qu ...