معلومات المنتج:
<%@ لغة الصفحة = "Java" contentType = "text/html؛ مجموعة الأحرف = 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">
<أتش تي أم أل>
<الرأس>
<محتوى التعريف = "العرض = عرض الجهاز، المقياس الأولي = 1.0، الحد الأقصى للمقياس = 1.0، قابل للتحجيم بواسطة المستخدم = لا" اسم = "منفذ العرض">
<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">
<العنوان>العنوان>العنوان>
<نمط النوع = "نص/CSS">
جسم{
محاذاة النص: مركز؛
الهامش: 0;
الحشو: 0؛
اللون: #500f60؛
الخلفية: url("../images/bj_4.jpg");
تكرار الخلفية: عدم التكرار؛
مرفق الخلفية: التمرير؛
حجم الخلفية: 100% 100%؛
تجاوز السعة x: مخفي؛
}
لي {
نوع نمط القائمة: لا شيء؛
}
أ:رابط{
نوع نمط القائمة: لا شيء؛
}
إم جي {
العرض: 100%؛
}
#ثابت{
الهامش: 0 تلقائي؛
محاذاة النص: يسار؛
العرض: 90%;
الهامش العلوي: 20 بكسل؛
}
.أأ{
المساحة المتروكة لليسار: 16 بكسل؛
}
#بوت{
الحدود: 3 بكسل #590303 صلب؛
نصف قطر الحدود: 6px 6px 6px 6px ؛
-moz-border-radius: 6px؛
العرض: 90%;
الهامش الأيسر: 5%؛
}
.تكس{
أعلى الحدود: لا شيء؛
الحد السفلي: لا شيء؛
الحدود اليسرى: لا شيء؛
الحدود اليمنى: لا شيء؛
الخلفية: ثابتة؛
}
</نمط>
</الرأس>
<نوع البرنامج النصي = "نص/جافا سكريبت">
$(وظيفة() {
الصف فار = 5؛
//الحصول على أفضل النتائج
وظيفة تحميلCommentInfo(صفحة) {
$("#page").text(page);
$.اجاكس({
النوع: "منشور"،
عنوان url : "<%=basePath%>findClickCommentByPage.action"،
البيانات: "page="+page+"&row="+صف،
النجاح: الوظيفة (البيانات) {
قائمة فار = data.list;
صف فار = "";
$("#comments").empty();
لـ (فار i = 0; i < list.length; i++) {
صف = "<h3><span style=/"color: #000; حجم الخط: 0.5em؛ الحشو-اليسار: 70%;/">"+list[i].time+"</span></h3>"+
"<h3 style=/"padding-left: 12px;/">"+list[i].content+"</h3>";
إذا(قائمة[i].repcontent!=null){
صف+="<h3 style=/"padding-left: 12px; التفاف الكلمة: كسر الكلمة؛ فاصل الكلمات: عادي;/">العنوان:"+list[i].repcontent+"</h3>";
}
"<hr size=/"5px;/" color=/"#f0f/">";
$(row).appendTo($("#comments"));
}
$("#pagetag").val(page);
}
});
};
الدالة getTotalContent() {
$.اجاكس({
النوع: "منشور"،
عنوان url : "<%=basePath%>getTotalNum.action"،
النجاح: الوظيفة (البيانات) {
$("#count").text(data.total);
إذا (parseInt(data.total)==0){
$("#page").text(0);
}
var pagenum = parseInt(data.total/row);
$("#totalpage").text(parseInt(data.total%row==0?pagenum:pagenum+1));
},
});
}
$("#إرسال").انقر(وظيفة(){
محتوى فار = $("#content").val();
إذا (المحتوى = = "") {
تنبيه("内容不能为空!");
يعود؛
}
$.post("<%=basePath%>addClickComment.action"،"content="+content,function(data){
إذا (data.success == صحيح) {
تنبيه("发表成功!");
$("#content").val("");
LoadCommentInfo(parseInt($("#pagetag").val()));
getTotalContent();
}
});
});
$("#pre").انقر(function(){
var page = parseInt($("#pagetag").val());
إذا(الصفحة>1){
صفحة--؛
LoadCommentInfo(page);
}
});
$("#التالي").انقر(وظيفة(){
var page = parseInt($("#pagetag").val());
إذا(page<parseInt($("#totalpage").text())){
صفحة++;
LoadCommentInfo(page);
}
});
window.onload =loadCommentInfo(1);
window.onload = getTotalContent();
});
</script>
<الجسم>
<نوع الإدخال = "مخفي" id = "pagetag" القيمة = "1">
<div معرف = "ثابت">
<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؛ الحد العلوي: لا شيء؛ الحد: 3px #520202 صلب؛ نصف قطر الحدود: 2px 2px 2px 2px؛-moz-border-radius: 6px؛ اللون: #FFEA00؛" id="pre">المفتاح</button>
<button style = "background: #520202؛ الحد العلوي: لا شيء؛ الحد: 3px #520202 صلب؛ نصف قطر الحدود: 2px 2px 2px 2px؛-moz-border-radius: 6px؛ float: right؛ اللون: #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>
<حجم الساعة = "5 بكسل؛" اللون = "#590303">
<div معرف = "تعليقات">
</div>
<h2>المفتاح</h2>
<h3>الاسم:</h3>
<div معرف = "بوت">
<textarearows="7" cols="100%" id="content"></textarea>
</div>
<button style = "margin-left: 80%؛ الحد العلوي: لا شيء؛ الحد: 3px #520202 صلب؛ نصف قطر الحدود: 6px 6px 6px 6px؛-moz-border-radius: 6px؛ اللون: #FFEA00؛ الخلفية: #520202;" id="submit">الإجابة</button>
</div>
</الجسم>
</html>
داو层
معلومات المنتج:
package dfml.daoImpl;
استيراد 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;
@عنصر
الطبقة العامة ClickCommentDaoImpl تنفذ ClickCommentDao{
قالب HibernateTemplate الخاص hibernateTemplate؛
@الموارد
مجموعة الفراغ العامHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
//الأمر متروك لك
@تجاوز
منطقي عام addClickComment(ClickComment clickComment) {
boolean isSuccess = false;
يحاول {
hibernateTemplate.save(clickComment);
isSuccess = true;
} قبض (الاستثناء ه) {
isSuccess = false;
printStackTrace();
}
العودة هي النجاح؛
}
//الحصول على أفضل النتائج
@SuppressWarnings("تم إلغاء التحديد")
@تجاوز
القائمة العامة<ClickComment> findClickCommentByPage(صفحة int النهائية، صف int النهائي) {
List<ClickComment> list = this.hibernateTemplate
.executeFind(new HibernateCallback<Object>() {
@تجاوز
الكائن العام doInHibernate (جلسة الجلسة)
يلقي HibernateException، SQLException {
المعايير c = session.createCriteria(ClickComment.class);
c.setFirstResult((صفحة - 1) * صف);
c.setMaxResults(row);
c.addOrder(Order.desc("time"));
إرجاع c.list();
}
});
قائمة العودة؛
}
//得到评论的个数
@SuppressWarnings({ "تم إلغاء التحديد"، "الأنواع الأولية" })
@تجاوز
public Long getClickCommentCount() {
السلسلة النهائية hql = "اختر العد (*) من ClickComment";
نتيجة طويلة = فارغة؛
النتيجة = (طويلة) hibernateTemplate.execute(new HibernateCallback() {
الكائن العام doInHibernate(Session arg0)
يلقي HibernateException، SQLException {
استعلام الاستعلام = arg0.createQuery(hql);
إرجاع الاستعلام.uniqueResult();
}
});
نتيجة الإرجاع؛
}
// 更新评论信息
@تجاوز
التحديث المنطقي العامClickComment(ClickComment clickComment) {
boolean isSuccess=false;
يحاول {
hibernateTemplate.update(clickComment);
isSuccess=true;
} قبض (الاستثناء ه) {
printStackTrace();
isSuccess=false;
}
العودة هي النجاح؛
}
// اختر معرفًا آخر
@تجاوز
ClickComment العامة findClickCommentById(int id) {
إرجاع (ClickComment) hibernateTemplate.find("من ClickComment حيث المعرف =؟"،
معرف).get(0);
}
//قم بالتسجيل في الموقع
@تجاوز
حذف منطقي عام (ClickComment clickComment) {
boolean isSuccess=false;
يحاول {
hibernateTemplate.delete(clickComment);
isSuccess=true;
} قبض (الاستثناء ه) {
printStackTrace();
isSuccess=false;
}
العودة هي النجاح؛
}
//الإجابة على هذا السؤال
@SuppressWarnings("تم إلغاء التحديد")
@تجاوز
القائمة العامة<ClickComment> findAllClickComment() {
return hibernateTemplate.find("from ClickComment");
}
}
الدعامات
معلومات المنتج:
<اسم الحزمة = "clickComment" يمتد = "json-default" namespace = "/">
<اسم الإجراء = "addClickComment" طريقة = "addClickComment">
<اسم النتيجة = "إضافة" نوع = "json">
<param name="root">الخريطة</param>
</النتيجة>
</أكشن>
<اسم الإجراء = "findClickCommentByPage" طريقة = "findClickCommentByPage">
<اسم النتيجة = "findByPage" نوع = "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؛
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")
@النطاق("النموذج الأولي")
الطبقة العامة ClickCommentAction تمتد ActionSupport{
serialVersionUID النهائي الطويل الخاص الثابت = 1L؛
ClickCommentDao الخاص clickCommentDao;
خريطة خاصة <String، Object> ؛
محتوى سلسلة خاصة؛// 评论内容
سلسلة خاصة recontent;// 回复评论
صفحة خاصة؛
صف int الخاص؛
صفوف كثافة العمليات الخاصة؛
معرف int الخاص؛
مجموعة الفراغ العام (معرف كثافة العمليات) {
this.id = id;
}
الخريطة العامة <String، Object> getMap () {
خريطة العودة؛
}
@الموارد
مجموعة الفراغ العامةClickCommentDao(ClickCommentDao clickCommentDao) {
this.clickCommentDao = clickCommentDao;
}
مجموعة الفراغ العام (محتوى السلسلة) {
this.content = content;
}
public void setRepcontent(String repcontent) {
this.repcontent = repcontent;
}
مجموعة باطلة عامة (صفحة int) {
this.page = page;
}
مجموعة الفراغ العام (صف int) {
this.row = صف;
}
مجموعة الفراغ العام (صفوف int) {
this.rows = صفوف؛
}
// تحديد موعد التسليم النهائي
سلسلة عامة 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);
يحاول {
isSuccess = clickCommentDao.addClickComment(clickComment);
} قبض (الاستثناء ه) {
isSuccess = false;
printStackTrace();
}
Map.put("success", isSuccess);
إرجاع "أضف" ؛
}
//الحصول على أفضل النتائج
سلسلة عامة findClickCommentByPage() {
Map = new HashMap<String, Object>();
Map.put("list", clickCommentDao.findClickCommentByPage(page,row));
إرجاع "findByPage"؛
}
//الحصول على أفضل النتائج
السلسلة العامة getTotalNum(){
Map = new HashMap<String, Object>();
Map.put("total", clickCommentDao.getClickCommentCount());
إرجاع "المجموع" ؛
}
//الحصول على أفضل النتائج
سلسلة عامة updateClickComment(){
boolean isSuccess=false;
Map=new HashMap<String, Object>();
ClickComment clickComment =clickCommentDao.findClickCommentById(id);
إذا(انقر فوقتعليق!=فارغة){
clickComment.setRepcontent(repcontent);
isSuccess=clickCommentDao.updateClickComment(clickComment);
}
Map.put("success", isSuccess);
إرجاع "التحديث" ؛
}
//الحصول على أفضل النتائج
سلسلة عامة 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);
إرجاع "القائمة" ؛
}
//الحصول على أفضل النتائج
سلسلة عامةdeleteClickComment(){
boolean isSuccess=false;
Map=new HashMap<String, Object>();
ClickComment clickComment =clickCommentDao.findClickCommentById(id);
إذا(انقر فوقتعليق!=فارغة){
isSuccess=clickCommentDao.deleteClickComment(clickComment);
}
Map.put("success", isSuccess);
إرجاع "حذف" ؛
}
}
بوجو
معلومات المنتج:
الحزمة dfml.pojo;
استيراد java.io.Serializable؛
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
//السؤال هنا
@كيان
الطبقة العامة ClickComment تنفذ Serializable{
serialVersionUID النهائي الطويل الخاص الثابت = 1L؛
معرف عدد صحيح خاص؛
وقت السلسلة الخاصة؛// 评论时间
محتوى سلسلة خاصة؛// 评论内容
اسم سلسلة خاصة؛ // 评论人
سلسلة خاصة recontent;//回复评论
@بطاقة تعريف
@القيمة المولدة
عدد صحيح عام getId () {
معرف العودة؛
}
معرف مجموعة الفراغ العام (معرف عدد صحيح) {
this.id = id;
}
سلسلة عامة getRepcontent () {
إرجاع المحتوى؛
}
public void setRepcontent(String repcontent) {
this.repcontent = repcontent;
}
سلسلة عامة getTime () {
وقت العودة
}
مجموعة الفراغ العام (وقت السلسلة) {
this.time = time;
}
سلسلة عامة getContent () {
عودة المحتوى؛
}
مجموعة الفراغ العام (محتوى السلسلة) {
this.content = content;
}
سلسلة عامة getName () {
اسم الإرجاع؛
}
اسم مجموعة الفراغ العام (اسم السلسلة) {
this.name = name;
}
}