项目之新书上架、热销书籍

项目之新书上架、热销书籍

    • 一、本章目标
    • 二、用到的SQL
    • 三、开始编码
    • 在BookDao方法里添加两个方法(news,hots)
    • 在BookAction调用这两个方法
    • 写完后端开始写前端
    • 具备条件
    • 写完前端后测试,把主界面有关代码注释
    • 测试后的效果图
    • 新书上架的效果出来了,热销书籍就简单了
    • 图片映射
    • 四、最终效果

一、本章目标

用代码实现动态新书上架、热销书籍
在这里插入图片描述

二、用到的SQL

已上架的书籍取前10条数据(根据最新上架时间最新10条)

#新书上架
select * from t_easyui_book where state=2 order by deploytime desc limit 10

已上架的书籍取前10条数据(根据热销最高10条)

#热销书籍
select * from t_easyui_book where state=2 order by sales desc limit 10

三、开始编码

在BookDao方法里添加两个方法(news,hots)

//	门户新书上架的书籍public List<Book> news(Book book,PageBean pageBean) throws Throwable{String sql = "select * from t_easyui_book where state=2 order by deploytime desc limit 10";return super.executeQuery(sql, pageBean, Book.class);}
//	门户的热销书籍public List<Book> hots(Book book,PageBean pageBean) throws Throwable{String sql = "select * from t_easyui_book where state=2 order by sales desc limit 10";return super.executeQuery(sql, pageBean, Book.class);}

在BookAction调用这两个方法

public String news(HttpServletRequest req,HttpServletResponse resp) {try {List<Book> news = this.bookDao.news(null, null);//将数据写出去ResponseUtil.writeJson(resp, Result.ok(news));} catch (Throwable e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public String hots(HttpServletRequest req,HttpServletResponse resp) {try {List<Book> hots = this.bookDao.hots(null, null);//将数据写出去ResponseUtil.writeJson(resp, Result.ok(hots));} catch (Throwable e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;

写完后端开始写前端

在index.js里添加事件
加载新书(递归)

$.ajax({url:ctx+'/book.action?methodName=news',success:function(data){data=eval('('+data+')');
//			给news container所属的div添加row或者列	appendBookDiv($(".news"),data.data,0,"");}});

具备条件

  • 1.给哪个div追加html内容(jQuery对象)
  • 2.追加内容的数据来源
  • 3.标识当前是第几行内容
  • 4.最终追加的html

node:jquery对象
data:数据
level:第几行内容
htmlstr:htmlstr串

function appendBookDiv($node,data,level,htmlstr){
//	第一行0-5var start=level*5;var len=data.length;htmlstr+='';for(i=start;i<start+5;i++){if(i==len) break;htmlstr+='';htmlstr+='[i].image+'" />';htmlstr+='

'+data[i].name+'

'
;htmlstr+='¥'+data[i].price+'';htmlstr+='';}htmlstr+='';level++;if(start+6>=len){$node.append(htmlstr);}else{appendBookDiv($node,data,level,htmlstr);} }

写完前端后测试,把主界面有关代码注释

<!-- <div class="row book"><div class="col-sm-2"><img src="img/2.png" /><p>第一商会</p><b style="color: red;">¥20</b></div><div class="col-sm-2"><img src="img/2.png" /><p>第一商会</p><b style="color: red;">¥20</b></div><div class="col-sm-2"><img src="img/2.png" /><p>第一商会</p><b style="color: red;">¥20</b></div><div class="col-sm-2"><img src="img/2.png" /><p>第一商会</p><b style="color: red;">¥20</b></div><div class="col-sm-2"><img src="img/2.png" /><p>第一商会</p><b style="color: red;">¥20</b></div></div> -->

测试后的效果图

在这里插入图片描述

新书上架的效果出来了,热销书籍就简单了

复制粘贴下新书的事件将news改成hots就OK了

//	热销(递归)$.ajax({url:ctx+'/book.action?methodName=hots',success:function(data){data=eval('('+data+')');
//			给news container所属的div添加row或者列	appendBookDiv($(".hots"),data.data,0,"");}});

在这里插入图片描述

图片映射

这时候效果出来了,图片没出来,因为没有做图片映射所导致的问题。
需要在服务器中找到server.xml文件,添加图片映射。
在这里插入图片描述
将图片放在硬盘里的某个文件里(取决于自己),填写文件的路径。
在这里插入图片描述

四、最终效果

在这里插入图片描述
这样图片就出来了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部