第一步:
前台核心js代码
function getNoteInfo(pageNo){
var tempPageCount = $("#tempPageCount").val();
if(pageNo==0){
alert("没有上一页");
pageNo = 1;
}
if(pageNo>tempPageCount){
alert("没有下一页");
pageNo = 1;
}
$("#fenye").html("正在加载中……");
$.ajax({
type : "post",
url : "noteAction.do?mhd=getNoteInfo&pageNo="+pageNo,//获取点评内容
data : null,
success:function(msg){
var json = eval('('+msg+')');
var content = "";
for(var i=0;i<json.pagesize;i++){
content += "<div class=\"dplist_each\">";
content += "<div class=\"h30 lh30 oh\">";
content += "<em class=\"fl ml10 fCE6700\">"+json.items[i][0]+"</em>";
content += "<em class=\"fl ml10 f_959595\">发表于:"+json.items[i][1]+"</em>";
content += "<em class=\"fl ml10 f_3866ab\">出游类型:"+json.items[i][2]+"</em>";
content += "</div>";
content += "<div class=\"h25 lh10\">"+json.items[i][3]+"</div>";
if(json.items[i][4]!=null){
content += "<div class=\"h30 lh30 oh\"><strong>"+json.items[i][4]+" 回复于:"+json.items[i][5]+" "+json.items[i][6]+"</strong></div>";
}
content += "</div>"
}
$("#noteInfo").html(content);
pageNo = parseInt(pageNo);//设置为数字格式
var ysContent = "<a href=\"javascript:getNoteInfo(1)\" class=\"bluelink mr10\"><<</a>";
var beforeIndex = parseInt(pageNo)-1;
var nextIndex = parseInt(pageNo)+1;
ysContent += "<a href=\"javascript:getNoteInfo("+beforeIndex+")\" class=\"bluelink mr10\">上一页</a>";
/* 分页显示机制开始 */
if(json.pageCount<=5){
/** 如果总共的页数小于等于5,直接显示从第一页到第五页的按钮 **/
for(var i=1;i<=json.pageCount;i++){
if(pageNo==i){
//是当前页不显示按钮标志
ysContent += "<a class=\"b mr10\">第"+i+"页</a>";
}else{
//非当前页显示按钮标志,可跳转
ysContent += "<a href=\"javascript:getNoteInfo("+i+")\" class=\"bluelink mr10\">第"+i+"页</a>";
}
}
}
else{
/** 如果总共的页数大于5 **/
/*** 计算开始位置 ***/
if(pageNo-2<1){
/** 如果当前页数-2比1还要小,从第一页开始到当前页显示 **/
for(var k=1;k<=pageNo;k++){
if(pageNo==k){
//是当前页不显示按钮标志
ysContent += "<a class=\"b mr10\">第"+k+"页</a>";
}else{
//非当前页显示按钮标志,可跳转
ysContent += "<a href=\"javascript:getNoteInfo("+k+")\" class=\"bluelink mr10\">第"+k+"页</a>";
}
}
}
else{
/** 从当前页倒数第二页开始 **/
ysContent += "...";
for(var k=pageNo-2;k<=pageNo;k++){
if(pageNo==k){
//是当前页不显示按钮标志
ysContent += "<a class=\"b mr10\">第"+k+"页</a>";
}else{
//非当前页显示按钮标志,可跳转
ysContent += "<a href=\"javascript:getNoteInfo("+k+")\" class=\"bluelink mr10\">第"+k+"页</a>";
}
}
}
/*** 计算结束位置 ***/
if(pageNo+2>json.pageCount){
/** 如果当前页数+2比最大数还要大,显示从当前页到最大数那一页 **/
for(var k=pageNo+1;k<=json.pageCount;k++){
ysContent += "<a href=\"javascript:getNoteInfo("+k+")\" class=\"bluelink mr10\">第"+k+"页</a>";
}
}
else{
/** 从当前页的后两页结束 **/
for(var k=pageNo+1;k<=pageNo+2;k++){
ysContent += "<a href=\"javascript:getNoteInfo("+k+")\" class=\"bluelink mr10\">第"+k+"页</a>";
}
ysContent += "...";
}
}
/* 分页显示机制结束 */
ysContent += "<a href=\"javascript:getNoteInfo("+nextIndex+")\" class=\"bluelink mr10\">下一页</a>";
ysContent += "<a href=\"javascript:getNoteInfo("+json.pageCount+")\" class=\"bluelink mr10\">>></a>";
ysContent += "跳转到 <select name=\"turnPage\" id=\"turnPage\" οnchange=\"getNoteInfo(turnPage.value)\">";
for(var j=1;j<=json.pageCount;j++){
if(pageNo==j){
ysContent += "<option value=\""+j+"\" selected>第"+j+"页</option>";
}else{
ysContent += "<option value=\""+j+"\" >第"+j+"页</option>";
}
}
ysContent += "</select> ";
ysContent += "共"+json.results+"条记录,共"+json.pageCount+"页";
$("#fenye").html(ysContent);
$("#tempPageCount").attr("value",json.pageCount);
}
});
}
第二步:
action代码
/**
* 获取留言内容
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward getNoteInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
String hotelId = "170942";
int pageSize = TotalJson.pageSize;//每页的条数
int pageCurrent = Integer.parseInt(request.getParameter("pageNo"));//当前页数
try{
int index = (pageCurrent-1)*pageSize;
int end = pageCurrent*pageSize;
String result = noteserviceImpl.getJsonNoteInfo(hotelId, index, end);
System.out.println("留言json内容:"+result);
response.getWriter().print(result);
}catch (Exception e) {
System.out.println(e.getMessage().toString());
}
return null;
}
第三步:
dao层组件代码
/**
* 获取留言内容(带分页功能的)
*/
public String getJsonNoteInfo(String hotelID,int index,int end) throws Exception {
// TODO Auto-generated method stub
Connection connection = null;
PreparedStatement preparedStatement = null;
PreparedStatement preparedStatement2 = null;
ResultSet resultSet = null;
ResultSet resultSet2 = null;
long totalResult = 0;//总共条数
String sql = "";
String sql2 = "";
List list = new ArrayList();
String result = "";
try{
connection = this.jdbc_connector.getJDBCConnection();
sql2 = "select count(*) from hotel_note where HOTELID = ? and STATE = 2";
sql = "select * from (select c.*,rownum n from hotel_note c where HOTELID = ? and STATE = 2) where n>? and n<=? ";
preparedStatement2 = connection.prepareStatement(sql2);
preparedStatement2.setString(1, hotelID);
resultSet2 = preparedStatement2.executeQuery();
while(resultSet2.next()){
totalResult = resultSet2.getInt(1);
}
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, hotelID);
preparedStatement.setInt(2, index);
preparedStatement.setInt(3, end);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
String[] strings = new String[7];
strings[0] = resultSet.getString("LOGINID");
strings[1] = resultSet.getString("NOTEDATE");
strings[2] = resultSet.getString("TYPE");
strings[3] = resultSet.getString("CONTENT");
strings[4] = resultSet.getString("RENOTEMAN");
strings[5] = resultSet.getString("RENOTEDATE");
strings[6] = resultSet.getString("RENOTECONTENT");
list.add(strings);
}
result = ExtHelper.getJsonAllInfoFromList(totalResult,list);
}catch (Exception e) {
e.printStackTrace();
throw new Exception("读取酒店评论出错");
}finally{
if(resultSet2!=null){
resultSet2.close();
}
if(resultSet!=null){
resultSet.close();
}
if(preparedStatement2!=null){
preparedStatement.close();
}
if(preparedStatement!=null){
preparedStatement.close();
}
if(connection!=null){
connection.close();
}
}
return result;
}
package com.csair.util;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONObject;
import com.csair.hotel.pojo.Hotel;
/**
* Title: Ext JS 辅助类
* Description: 该类用于转换java对象为XML文件格式或JSON文件格式
* @author weijun
* @time: 2008.07.09
*/
public class ExtHelper {
/**
* 通过List生成JSON数据
* @param recordTotal 记录总数,不一定与beanList中的记录数相等
* @param beanList 包含bean对象的集合
* @return 生成的JSON数据
*/
public static String getJsonFromList(long recordTotal , List beanList){
int start = 0;
int limit = 10;
TotalJson total = new TotalJson();
List Ll = new ArrayList();
total.setResults(recordTotal);
int pageCount;
if(recordTotal % TotalJson.pageSize == 0){
pageCount = (int) (recordTotal/TotalJson.pageSize);
}else {
pageCount = (int) (recordTotal/TotalJson.pageSize+1);
}
total.setPageCount(pageCount);
total.setPagesize(beanList.size());
total.setItems(beanList);
JSONObject JsonObject = JSONObject.fromObject(total);
System.out.println(JsonObject.toString());
return JsonObject.toString();
}
/**
* 通过List生成JSON数据
* @param beanList 包含bean对象的集合
* @return 生成的JSON数据
*/
public static String getJsonFromList(List beanList){
return getJsonFromList(beanList.size(),beanList);
}
/**
* 带页数的json格式返回
* @param recordTotal 记录总数,不一定与beanList中的记录数相等
* @param beanList 包含bean对象的集合
* @return 生成的JSON数据
*/
public static String getJsonAllInfoFromList(long recordTotal , List<Hotel> beanList){
int start = 0;
int limit = 10;
TotalJson total = new TotalJson();
List Ll = new ArrayList();
total.setResults(recordTotal);
int pageCount;
if(recordTotal % TotalJson.pageSize == 0){
pageCount = (int) (recordTotal/TotalJson.pageSize);
}else {
pageCount = (int) (recordTotal/TotalJson.pageSize+1);
}
total.setPageCount(pageCount);
total.setPagesize(beanList.size());
total.setItems(beanList);
JSONObject JsonObject = JSONObject.fromObject(total);
System.out.println("json~~~~"+JsonObject.toString());
return JsonObject.toString();
}
/**
* 通过bean生成JSON数据
* @param bean bean对象
* @return 生成的JSON数据
*/
public static String getJsonFromBean(Object bean){
JSONObject JsonObject = JSONObject.fromObject(bean);
return JsonObject.toString();
}
/**
* 生成几个测试用例
* @param args
*/
public static void main(String[] args) {
/*
* Example list返回为xml格式的字符串
*/
List list=new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
/*
* Example list返回为Json格式的字符串
*/
String testString2=getJsonFromList(10,list);
System.out.println(testString2);
/*
* Example Total返回为Json格式的字符串
*/
Total total=new Total();
total.setResults(100);
String totalString=getJsonFromBean(total);
System.out.println(totalString);
}
}
package com.csair.util;
import java.util.List;
public class TotalJson {
public static int pageSize = 6;//每页显示的条数
private long results;//总条数
private long pageCount;//总页数
private List items;
private long pagesize;
public List getItems() {
return items;
}
public void setItems(List items) {
this.items = items;
}
public long getResults() {
return results;
}
public void setResults(long results) {
this.results = results;
}
public long getPageCount() {
return pageCount;
}
public void setPageCount(long pageCount) {
this.pageCount = pageCount;
}
public long getPagesize() {
return pagesize;
}
public void setPagesize(long pagesize) {
this.pagesize = pagesize;
}
}
package com.csair.util;
public class Total {
private long results;
public long getResults() {
return results;
}
public void setResults(long results) {
this.results = results;
}
}