复制番号代番号次のように:
<%@ ページ言語="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
文字列パス = request.getContextPath();
文字列basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ パス + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<頭>
<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.googleapis.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">
体{
テキスト整列: 中央;
マージン: 0;
パディング: 0;
色: #500f60;
背景: url("../images/bj_4.jpg");
背景リピート:リピートなし;
背景添付: スクロール;
背景サイズ:100% 100%;
オーバーフロー-x: 非表示;
}
リ{
リストスタイルタイプ: なし;
}
a:リンク{
リストスタイルタイプ: なし;
}
画像{
幅: 100%;
}
#静的{
マージン: 0 自動;
テキスト整列: 左;
幅: 90%;
マージントップ: 20px;
}
.aa{
パディング左: 16px;
}
#ボット{
境界線: 3px #590303 ソリッド;
境界半径: 6px 6px 6px 6px;
-moz-border-radius: 6px;
幅: 90%;
マージン左: 5%;
}
.tex{
ボーダートップ: なし。
ボーダーボトム: なし。
左境界線: なし。
右境界線: なし。
背景: 固定;
}
</スタイル>
</head>
<script type="text/javascript">
$(関数() {
var 行 = 5;
//アニメーション加评论情報
関数loadCommentInfo(ページ) {
$("#page").text(ページ);
$.ajax({
タイプ: "POST"、
URL : "<%=basePath%>findClickCommentByPage.action",
データ: "page="+page+"&row="+row,
成功: 関数(データ) {
var list = データ.リスト;
var 行 = "";
$("#comments").empty();
for ( var i = 0; i < list.length; i++) {
行 = "<h3><スパン スタイル =/"カラー: #000;フォントサイズ: 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;ワードラップ: ブレークワード;ワードブレイク: 通常;/">回复:"+list[i].repcontent+"</h3>";
}
"<hr size=/"5px;/" color=/"#f0f/">";
$(row).appendTo($("#comments"));
}
$("#pagetag").val(ページ);
}
});
};
関数 getTotalContent() {
$.ajax({
タイプ: "POST"、
URL : "<%=basePath%>getTotalNum.action",
成功: 関数(データ) {
$("#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(コンテンツ==""){
alert("内容が空になることはできません!");
戻る;
}
$.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(ページ>1){
ページ - ;
ロードコメント情報(ページ);
}
});
$("#next").click(function(){
var page = parseInt($("#pagetag").val());
if(page<parseInt($("#totalpage").text())){
ページ++;
ロードコメント情報(ページ);
}
});
window.onload = ロードコメント情報(1);
window.onload = getTotalContent();
});
</script>
<本文>
<input type="hidden" id="pagetag" value="1">
<div id="静的">
<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="コメント">
</div>
<h2>発行表论</h2>
<h3>您の评论:</h3>
<div id="ボット">
<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; 背景: #520202;" id="submit">発行表</button>
</div>
</body>
</html>
だお层
复制番号代番号次のように:
パッケージ dfml.daoImpl;
インポート java.sql.SQLException;
java.util.Listをインポートします。
javax.annotation.Resourceをインポートします。
org.hibernate.Criteria をインポートします。
org.hibernate.HibernateException をインポートします。
org.hibernate.Query をインポートします。
org.hibernate.Session をインポートします。
org.hibernate.criterion.Order をインポートします。
org.springframework.orm.hibernate3.HibernateCallback をインポートします。
org.springframework.orm.hibernate3.HibernateTemplate をインポートします。
org.springframework.stereotype.Component をインポートします。
インポート dfml.dao.ClickCommentDao;
インポート dfml.pojo.ClickComment;
@成分
public class ClickCommentDaoImpl は ClickCommentDao{ を実装します
プライベート HibernateTemplate hibernateTemplate;
@リソース
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
//一条评论情報を追加
@オーバーライド
public boolean addClickComment(ClickComment clickComment) {
ブール値 isSuccess = false;
試す {
hibernateTemplate.save(clickComment);
isSuccess = true;
} catch (例外 e) {
isSuccess = false;
e.printStackTrace();
}
戻り値は成功です。
}
//分页查找评论情報
@SuppressWarnings("未チェック")
@オーバーライド
public List<ClickComment> findClickCommentByPage(最終 int ページ、最終 int 行) {
List<ClickComment> list = this.hibernateTemplate
.executeFind(new HibernateCallback<Object>() {
@オーバーライド
public Object doInHibernate(セッションセッション)
HibernateException、SQLException {をスローします。
条件 c = session.createCriteria(ClickComment.class);
c.setFirstResult((ページ - 1) * 行);
c.setMaxResults(行);
c.addOrder(Order.desc("時間"));
c.list() を返します。
}
});
リストを返す;
}
//评论の数を取得
@SuppressWarnings({ "未チェック", "rawtypes" })
@オーバーライド
public Long getClickCommentCount() {
Final String hql = "ClickComment から count(*) を選択";
長い結果 = null;
result = (Long) hibernateTemplate.execute(new HibernateCallback() {
パブリック オブジェクト doInHibernate(セッション arg0)
HibernateException、SQLException {をスローします。
クエリクエリ = arg0.createQuery(hql);
戻り query.uniqueResult();
}
});
結果を返します。
}
//评论情報を更新
@オーバーライド
public boolean updateClickComment(ClickComment clickComment) {
ブール値は成功=false;
試す {
hibernateTemplate.update(clickComment);
成功=true;
} catch (例外 e) {
e.printStackTrace();
成功 = false;
}
戻り値は成功です。
}
//ベースid查找评论情報
@オーバーライド
public ClickComment findClickCommentById(int id) {
return (ClickComment) hibernateTemplate.find("id = ? の ClickComment から",
id).get(0);
}
//删除评论情報
@オーバーライド
public boolean deleteClickComment(ClickComment clickComment) {
ブール値は成功=false;
試す {
hibernateTemplate.delete(clickComment);
成功=true;
} catch (例外 e) {
e.printStackTrace();
成功 = false;
}
戻り値は成功です。
}
//すべての評価を確認する
@SuppressWarnings("未チェック")
@オーバーライド
public List<ClickComment> findAllClickComment() {
return hibernateTemplate.find("from ClickComment");
}
}
ストラット構成
复制番号代番号次のように:
<package name="clickComment" extends="json-default" namespace="/">
<アクション名="addClickComment" メソッド="addClickComment">
<結果名="追加" タイプ="json">
<param name="root">マップ</param>
</結果>
</アクション>
<アクション名="findClickCommentByPage" メソッド="findClickCommentByPage">
<結果名="findByPage" type="json">
<param name="root">マップ</param>
</結果>
</アクション>
<アクション名="getTotalNum" メソッド="getTotalNum">
<結果名="合計" タイプ="json">
<param name="root">マップ</param>
</結果>
</アクション>
<アクション名="updateClickComment" メソッド="updateClickComment">
<結果名="更新" タイプ="json">
<param name="root">マップ</param>
</結果>
</アクション>
<アクション名="findAllClickComment" メソッド="findAllClickComment">
<結果名="リスト" タイプ="json">
<param name="root">マップ</param>
</結果>
</アクション>
<アクション名="deleteClickComment" メソッド="deleteClickComment">
<結果名="削除" タイプ="json">
<param name="root">マップ</param>
</結果>
</アクション>
アクション
复制番号代番号次のように:
パッケージ dfml.action;
インポートjava.sql.Date;
インポート java.text.SimpleDateFormat;
java.util.HashMapをインポートします。
java.util.Listをインポートします。
java.util.Mapをインポートします。
javax.annotation.Resourceをインポートします。
org.springframework.context.annotation.Scope をインポートします。
org.springframework.stereotype.Component をインポートします。
com.opensymphony.xwork2.ActionSupport をインポートします。
インポート dfml.dao.ClickCommentDao;
dfml.pojo.Activityをインポートします。
インポート dfml.pojo.ClickComment;
@Component("clickCommentAction")
@Scope("プロトタイプ")
public class ClickCommentAction extends ActionSupport{
プライベート静的最終ロングシリアルバージョンUID = 1L;
プライベート ClickCommentDao clickCommentDao;
プライベート Map<String, Object> マップ;
private String content;// 评论内容
private String repcontent;// 回复评论
プライベート int ページ。
プライベート int 行;
プライベート int 行。
プライベート int ID;
public void setId(int id) {
this.id = ID;
}
public Map<String, Object> getMap() {
マップを返す。
}
@リソース
public void setClickCommentDao(ClickCommentDao clickCommentDao) {
this.clickCommentDao = clickCommentDao;
}
public void setContent(String content) {
this.content = コンテンツ;
}
public void setRepcontent(String repcontent) {
this.repcontent = repcontent;
}
public void setPage(int page) {
this.page = ページ;
}
public void setRow(int row) {
this.row = 行;
}
public void setRows(int rows) {
this.rows = 行;
}
// マイクロクレジット用に评论を追加
public String addClickComment() {
ブール値 isSuccess = false;
マップ = 新しい HashMap<String, Object>();
ClickComment clickComment = new ClickComment();
SimpleDateFormat 形式 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
clickComment.setTime(format.format(new Date(System.currentTimeMillis())));
clickComment.setContent(コンテンツ);
試す {
isSuccess = clickCommentDao.addClickComment(clickComment);
} catch (例外 e) {
isSuccess = false;
e.printStackTrace();
}
map.put("成功", isSuccess);
「追加」を返します。
}
//分页查找评论用户マイクロ信用户
public String findClickCommentByPage() {
マップ = 新しい HashMap<String, Object>();
map.put("リスト", clickCommentDao.findClickCommentByPage(ページ, 行));
"findByPage" を返します。
}
//マイクロ信用度に使用される蟥询评论条数
public String getTotalNum(){
マップ = 新しい HashMap<String, Object>();
map.put("合計", clickCommentDao.getClickCommentCount());
「合計」を返します。
}
//後台管理用の回帰评论
public String updateClickComment(){
ブール値は成功=false;
map=new HashMap<String, Object>();
ClickComment clickComment =clickCommentDao.findClickCommentById(id);
if(clickComment!=null){
clickComment.setRepcontent(repcontent);
isSuccess=clickCommentDao.updateClickComment(clickComment);
}
map.put("成功", isSuccess);
「更新」を返します。
}
//すべての评论は後台管理に使用されます
public String findAllClickComment(){
map=new HashMap<String, Object>();
List<ClickComment> lists=clickCommentDao.findClickCommentByPage(page, rows);
List<ClickComment> listss=clickCommentDao.findAllClickComment();
map.put("行", リスト);
map.put("合計", listss.size());
map.put("リスト", listss);
「リスト」を返します。
}
//删除评论は後台管理用
public String deleteClickComment(){
ブール値は成功=false;
map=new HashMap<String, Object>();
ClickComment clickComment =clickCommentDao.findClickCommentById(id);
if(clickComment!=null){
isSuccess=clickCommentDao.deleteClickComment(clickComment);
}
map.put("成功", isSuccess);
「削除」を返します。
}
}
ポジョ
复制番号代番号次のように:
パッケージ dfml.pojo;
java.io.Serializableをインポートします。
インポートjavax.persistence.Entity;
インポート javax.persistence.GeneratedValue;
インポートjavax.persistence.Id;
//评论表
@実在物
public class ClickComment は Serializable{ を実装します
プライベート静的最終ロングシリアルバージョンUID = 1L;
プライベート整数 ID;
private String time;// 评论時間间
private String content;// 评论内容
private String name;// 评论人
private String repcontent;//回复评论
@Id
@GeneratedValue
public Integer getId() {
ID を返します。
}
public void setId(整数ID) {
this.id = ID;
}
public String getRepcontent() {
repcontent を返します。
}
public void setRepcontent(String repcontent) {
this.repcontent = repcontent;
}
public String getTime() {
戻り時間。
}
public void setTime(String time) {
this.time = 時間;
}
public String getContent() {
コンテンツを返す。
}
public void setContent(String content) {
this.content = コンテンツ;
}
public String getName() {
名前を返します。
}
public void setName(文字列名) {
this.name = 名前;
}
}