js写的评论分页(还不错)

Javascript教程 2025-08-09

复制代码代码如下:

< %@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"% >

< %

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

% >

< !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.***w3.org/TR/html4/loose.dtd" >

< html >

< head >

< meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" >

< script type="text/javascript" src="http://ajax.go**ogleapi*s.com/ajax/libs/jquery/1.5.2/jquery.min.js" >< /script >

< meta http-equiv="Content-Type" content="text/html; charset=utf-8" >

< title >微客服< /title >

< style type="text/css" >

body{

text-align: center;

margin: 0;

padding: 0;

color: #500f60;

background: url("../images/bj_4.jpg");

background-repeat:no-repeat;

background-attachment: scroll;

background-size:100% 100%;

overflow-x: hidden;

}

li{

list-style-type: none;

}

a:link{

list-style-type: none;

}

img{

width: 100%;

}

#static{

margin: 0 auto;

text-align: left;

width: 90%;

margin-top: 20px;

}

.aa{

padding-left: 16px;

}

#bott{

border: 3px #590303 solid;

border-radius: 6px 6px 6px 6px;

-moz-border-radius: 6px;

width: 90%;

margin-left: 5%;

}

.tex{

border-top: none;

border-bottom: none;

border-left: none;

border-right: none;

background: fixed;

}

< /style >

< /head >

< script type="text/javascript" >

$(function() {

var row = 5;

//动态加评论信息

function loadCommentInfo(page) {

$("#page").text(page);

$.ajax({

type : "POST",

url : "< %=basePath% >findClickCommentByPage.action",

data: "page="+page+"&row="+row,

success : function(data) {

var list = data.list;

var row = "";

$("#comments").empty();

for ( var i = 0; i <  list.length; i++) {

row = "< h3 >< span style=/"color: #000; font-size: 0.5em; padding-left: 70%;/" >"+list[i].time+"< /span >< /h3 >"+

"< h3 style=/"padding-left: 12px;/" >"+list[i].content+"< /h3 >";

if(list[i].repcontent!=null){

row+="< h3 style=/"padding-left: 12px; word-wrap: break-word; word-break: normal;/" >回复:"+list[i].repcontent+"< /h3 >";

}

"< hr size=/"5px;/" color=/"#f0f/" >";

$(row).appendTo($("#comments"));

}

$("#pagetag").val(page);

}

});

};

function getTotalContent() {

$.ajax({

type : "POST",

url : "< %=basePath% >getTotalNum.action",

success : function(data) {

$("#count").text(data.total);

if(parseInt(data.total)==0){

$("#page").text(0);

}

var pagenum = parseInt(data.total/row);

$("#totalpage").text(parseInt(data.total%row==0?pagenum:pagenum+1));

},

});

}

$("#submit").click(function(){

var content = $("#content").val();

if(content==""){

alert("内容不能为空!");

return;

}

$.post("< %=basePath% >addClickComment.action","content="+content,function(data){

if(data.success == true) {

alert("发表成功!");

$("#content").val("");

loadCommentInfo(parseInt($("#pagetag").val()));

getTotalContent();

}

});

});

$("#pre").click(function(){

var page = parseInt($("#pagetag").val());

if(page >1){

page--;

loadCommentInfo(page);

}

});

$("#next").click(function(){

var page = parseInt($("#pagetag").val());

if(page< parseInt($("#totalpage").text())){

page++;

loadCommentInfo(page);

}

});

window.onload = loadCommentInfo(1);

window.onload = getTotalContent();

});

< /script >

< body >

< input type="hidden" id="pagetag" value="1" >

< div id="static" >

< div style="text-align: left; z-index: 999" >

< img src="../pic/top4.jpg" >

< a href="< %=basePath% >jsp/index.jsp" >< img src="../pic/fan_2.png" >< /a >

< /div >

< button style="background: #520202; border-top: none;border: 3px #520202 solid; border-radius: 2px 2px 2px 2px;-moz-border-radius: 6px; color: #FFEA00;" id="pre" >上一页< /button >

< button style="background: #520202; border-top: none;border: 3px #520202 solid; border-radius: 2px 2px 2px 2px;-moz-border-radius: 6px;float: right; color: #FFEA00;" id="next" >下一页< /button >

< p style="background: #520202; color: #FFEA00;" >第< span id="page" >< /span >/< span id="totalpage" >< /span >页< /p >

< h1 >评论(< span id="count" >< /span >)< /h1 >

< hr size="5px;" color="#590303" >

< div id="comments" >

< /div >

< h2 >发表评论< /h2 >

< h3 >您的评论:< /h3 >

< div id="bott" >

< textarea rows="7" cols="100%" id="content" >< /textarea >

< /div >

< button style="margin-left:80%; border-top: none;border: 3px #520202 solid; border-radius: 6px 6px 6px 6px;-moz-border-radius: 6px; color: #FFEA00; background: #520202;" id="submit" >发表< /button >

< /div >

< /body >

< /html >

dao层

复制代码代码如下:

package dfml.daoImpl;

import java.sql.SQLException;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Criteria;

import org.hibernate.HibernateException;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.criterion.Order;

import org.springframework.orm.hibernate3.HibernateCallback;

import org.springframework.orm.hibernate3.HibernateTemplate;

import org.springframework.stereotype.Component;

import dfml.dao.ClickCommentDao;

import dfml.pojo.ClickComment;

@Component

public class ClickCommentDaoImpl implements ClickCommentDao{

private HibernateTemplate hibernateTemplate;

@Resource

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {

this.hibernateTemplate = hibernateTemplate;

}

//添加一条评论信息

@Override

public boolean addClickComment(ClickComment clickComment) {

boolean isSuccess = false;

try {

hibernateTemplate.save(clickComment);

isSuccess = true;

} catch (Exception e) {

isSuccess = false;

e.printStackTrace();

}

return isSuccess;

}

//分页查找评论信息

@SuppressWarnings("unchecked")

@Override

public List< ClickComment > findClickCommentByPage(final int page, final int row) {

List< ClickComment > list = this.hibernateTemplate

.executeFind(new HibernateCallback< Object >() {

@Override

public Object doInHibernate(Session session)

throws HibernateException, SQLException {

Criteria c = session.createCriteria(ClickComment.class);

c.setFirstResult((page - 1) * row);

c.setMaxResults(row);

c.addOrder(Order.desc("time"));

return c.list();

}

});

return list;

}

//得到评论的个数

@SuppressWarnings({ "unchecked", "rawtypes" })

@Override

public Long getClickCommentCount() {

final String hql = "select count(*) from ClickComment";

Long result = null;

result = (Long) hibernateTemplate.execute(new HibernateCallback() {

public Object doInHibernate(Session arg0)

throws HibernateException, SQLException {

Query query = arg0.createQuery(hql);

return query.uniqueResult();

}

});

return result;

}

//更新评论信息

@Override

public boolean updateClickComment(ClickComment clickComment) {

boolean isSuccess=false;

try {

hibernateTemplate.update(clickComment);

isSuccess=true;

} catch (Exception e) {

e.printStackTrace();

isSuccess=false;

}

return isSuccess;

}

//根据id查找评论信息

@Override

public ClickComment findClickCommentById(int id) {

return (ClickComment) hibernateTemplate.find("from ClickComment where id = ?",

id).get(0);

}

//删除评论信息

@Override

public boolean deleteClickComment(ClickComment clickComment) {

boolean isSuccess=false;

try {

hibernateTemplate.delete(clickComment);

isSuccess=true;

} catch (Exception e) {

e.printStackTrace();

isSuccess=false;

}

return isSuccess;

}

//查询所有的评论

@SuppressWarnings("unchecked")

@Override

public List< ClickComment > findAllClickComment() {

return hibernateTemplate.find("from ClickComment");

}

}

struts配置

复制代码代码如下:

< package name="clickComment" extends="json-default" namespace="/" >

< action name="addClickComment" method="addClickComment" >

< result name="add" type="json" >

< param name="root" >map< /param >

< /result >

< /action >

< action name="findClickCommentByPage" method="findClickCommentByPage" >

< result name="findByPage" type="json" >

< param name="root" >map< /param >

< /result >

< /action >

< action name="getTotalNum" method="getTotalNum" >

< result name="total" type="json" >

< param name="root" >map< /param >

< /result >

< /action >

< action name="updateClickComment" method="updateClickComment" >

< result name="update" type="json" >

< param name="root" >map< /param >

< /result >

< /action >

< action name="findAllClickComment" method="findAllClickComment" >

< result name="list" type="json" >

< param name="root" >map< /param >

< /result >

< /action >

< action name="deleteClickComment" method="deleteClickComment" >

< result name="delete" type="json" >

< param name="root" >map< /param >

< /result >

< /action >

action

复制代码代码如下:

package dfml.action;

import java.sql.Date;

import java.text.SimpleDateFormat;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import com.opensymphony.xwork2.ActionSupport;

import dfml.dao.ClickCommentDao;

import dfml.pojo.Activity;

import dfml.pojo.ClickComment;

@Component("clickCommentAction")

@Scope("prototype")

public class ClickCommentAction extends ActionSupport{

private static final long serialVersionUID = 1L;

private ClickCommentDao clickCommentDao;

private Map< String, Object > map;

private String content;// 评论内容

private String repcontent;// 回复评论

private int page;

private int row;

private int rows;

private int id;

public void setId(int id) {

this.id = id;

}

public Map< String, Object > getMap() {

return map;

}

@Resource

public void setClickCommentDao(ClickCommentDao clickCommentDao) {

this.clickCommentDao = clickCommentDao;

}

public void setContent(String content) {

this.content = content;

}

public void setRepcontent(String repcontent) {

this.repcontent = repcontent;

}

public void setPage(int page) {

this.page = page;

}

public void setRow(int row) {

this.row = row;

}

public void setRows(int rows) {

this.rows = rows;

}

//添加评论 用于微信用户

public String addClickComment() {

boolean isSuccess = false;

map = new HashMap< String, Object >();

ClickComment clickComment = new ClickComment();

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

clickComment.setTime(format.format(new Date(System.currentTimeMillis())));

clickComment.setContent(content);

try {

isSuccess = clickCommentDao.addClickComment(clickComment);

} catch (Exception e) {

isSuccess = false;

e.printStackTrace();

}

map.put("success", isSuccess);

return "add";

}

//分页查找评论 用户微信用户

public String findClickCommentByPage() {

map = new HashMap< String, Object >();

map.put("list", clickCommentDao.findClickCommentByPage(page, row));

return "findByPage";

}

//查询评论条数 用于微信用户

public String getTotalNum(){

map = new HashMap< String, Object >();

map.put("total", clickCommentDao.getClickCommentCount());

return "total";

}

//回复评论 用于后台管理

public String updateClickComment(){

boolean isSuccess=false;

map=new HashMap< String, Object >();

ClickComment clickComment =clickCommentDao.findClickCommentById(id);

if(clickComment!=null){

clickComment.setRepcontent(repcontent);

isSuccess=clickCommentDao.updateClickComment(clickComment);

}

map.put("success", isSuccess);

return "update";

}

//查询所有评论 用于后台管理

public String findAllClickComment(){

map=new HashMap< String, Object >();

List< ClickComment > lists=clickCommentDao.findClickCommentByPage(page, rows);

List< ClickComment > listss=clickCommentDao.findAllClickComment();

map.put("rows", lists);

map.put("total", listss.size());

map.put("list", listss);

return "list";

}

//删除评论 用于后台管理

public String deleteClickComment(){

boolean isSuccess=false;

map=new HashMap< String, Object >();

ClickComment clickComment =clickCommentDao.findClickCommentById(id);

if(clickComment!=null){

isSuccess=clickCommentDao.deleteClickComment(clickComment);

}

map.put("success", isSuccess);

return "delete";

}

}

pojo

复制代码代码如下:

package dfml.pojo;

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

//评论表

@Entity

public class ClickComment implements Serializable{

private static final long serialVersionUID = 1L;

private Integer id;

private String time;// 评论时间

private String content;// 评论内容

private String name;// 评论人

private String repcontent;//回复评论

@Id

@GeneratedValue

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getRepcontent() {

return repcontent;

}

public void setRepcontent(String repcontent) {

this.repcontent = repcontent;

}

public String getTime() {

return time;

}

public void setTime(String time) {

this.time = time;

}

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}