网上书城之门户首页及新书上架,热销书籍
实现功能
继上几篇博客的代码 我打算把各种功能的代码一一清楚的写出来 今天写的是门户首页及新书上架,热销书籍!
门户首页功能
门户首页分为两个java包和一部分的.js
CategoryDao
package com.huangjie.Dao;
import java.util.List;
import com.huangjie.entity.Category;
import com.huangjie.utils.BaseDao;
import com.huangjie.utils.PageBean;
public class CategoryDao extends BaseDao<Category> {
public List<Category> list(Category category, PageBean pageBean) throws Exception {
String sql = "select * from t_easyui_category ";
return super.executeQuery(sql,pageBean,Category.class);
}
}
CategoryAction
package com.huangjie.web;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.huangjie.Dao.CategoryDao;
import com.huangjie.entity.Category;
import com.huangjie.framework.ActionSupport;
import com.huangjie.framework.ModelDriven;
import com.huangjie.utils.ResponseUtil;
public class CategoryAction extends ActionSupport implements ModelDriven<Category> {
private Category category = new Category();
private CategoryDao categoryDao = new CategoryDao();
public String combobox(HttpServletRequest req,HttpServletResponse resp) {
try {
List<Category> list = this.categoryDao.list(null, null);
ResponseUtil.writeJson(resp, list);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public Category getModel() {
return category;
}
}
因为比较麻烦 所以我把.js写在下面就不分开了
新书上架,热销书籍
新书上架和热销书籍也是分别有两个java包和一个.js
BookDao
package com.huangjie.Dao;
import java.util.List;
import com.huangjie.entity.Book;
import com.huangjie.utils.BaseDao;
import com.huangjie.utils.PageBean;
import com.huangjie.utils.StringUtils;
public class BookDao extends BaseDao<Book> {
public List<Book> newsBook(Book book, PageBean pageBean) throws Exception {
String sql = "select * from t_easyui_book where state = 2 order by deployTime desc";
return super.executeQuery(sql, pageBean, Book.class);
}
public List<Book> hotBook(Book book, PageBean pageBean) throws Exception {
String sql = "select * from t_easyui_book where state = 2 order by sales desc";
return super.executeQuery(sql, pageBean, Book.class);
}
}
BookAction
package com.huangjie.web;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.huangjie.Dao.BookDao;
import com.huangjie.entity.Book;
import com.huangjie.framework.ActionSupport;
import com.huangjie.framework.ModelDriven;
import com.huangjie.utils.DateUtil;
import com.huangjie.utils.EasyuiResult;
import com.huangjie.utils.PageBean;
import com.huangjie.utils.PropertiesUtil;
import com.huangjie.utils.ResponseUtil;
public class BookAction extends ActionSupport implements ModelDriven<Book> {
private Book book = new Book();
private BookDao bookDao = new BookDao();
public String news(HttpServletRequest request, HttpServletResponse response) {
PageBean pageBean = new PageBean();
pageBean.setRequest(request);
try {
List<Book> list = this.bookDao.newsBook(book, pageBean);
ResponseUtil.writeJson(response, EasyuiResult.ok(pageBean.getTotal(), list));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public String hot(HttpServletRequest request, HttpServletResponse response) {
PageBean pageBean = new PageBean();
pageBean.setRequest(request);
try {
List<Book> list = this.bookDao.hotBook(book, pageBean);
ResponseUtil.writeJson(response, EasyuiResult.ok(pageBean.getTotal(), list));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public Book getModel() {
return book;
}
}
index.js
$(function () {
//后面渲染的元素节点
$(".list-group").on('mouseenter','.list-group-item:gt(0)',function () {
$(this).addClass('list-group-item-hover');
});
$(".list-group").on('mouseleave','.list-group-item:gt(0)',function () {
$(this).removeClass('list-group-item-hover');
});
//分类
$.ajax({
url: '${pageContext.request.contextPath}/category.action?methodName=combobox',
success: function (data) {
data = eval('('+data+')');
// debugger;
for (i in data) {
$(".list-group").append('<li onclick="searchByType('+ data[i].id+')" class="list-group-item">' + data[i].name + '</li>');
}
}
});
// 加载新书
$.ajax({
url:ctx+'/book.action?methodName=news',
success:function(data){
data = eval('('+data+')');
// 给news container 所属的div添加row或者列
appendBookDiv($(".news"),data.data,0,"");
}
});
// 加载热销书籍
$.ajax({
url:ctx+'/book.action?methodName=hots',
success:function(data){
data = eval('('+data+')');
// 给news container 所属的div添加row或者列
appendBookDiv($(".hots"),data.data,0,"");
}
});
})
/*
* 1、给哪个div追加html内容(jquery对象)
* 2、最佳内容的数据来源
* 3、标识当前是第几行内容
* 4、最终追加的html
*/
function appendBookDiv($node,data,level,htmlstr){
// 第一行:0-5
var start = level * 6;
// data的数据12条
var len = data.length;
htmlstr += '<div class="row book">';
for(i=start;i<start+6;i++){
if(i==len) break;
htmlstr += '<div class="col-sm-2" style="width: 90px;">';
htmlstr += '<img src="'+data[i].image+'" >';
htmlstr += '<p>'+data[i].name+'</p>';
htmlstr += '<b>¥'+data[i].price+'</b>';
htmlstr += '</div>';
}
htmlstr += '</div>';
level++;
if(start+6>=len){
$node.append(htmlstr);
}else{
appendBookDiv($node,data,level,htmlstr);
}
}
总结
今天的内容就是这么多啦!这个项目写的时间会比较久 分很多篇博客写!