网上书城项目
前台主页书籍类别动态加载
//加载左侧书籍列表
$.ajax({
url:ctx+'/book.action?opt=combox',
success:function(data){
data =eval('('+data+')');
for(i in data){
$(".classify").append('<li><a href="#">'+data[i].name+'</a></li>');
$(".classify").append('<div class="fixed"></div>');
}
}
});
web:
public String combox(HttpServletRequest req,HttpServletResponse resp) throws Exception {
List<Category> list = this.categoryDao.getAll();
try {
ResponseUtil.writeJson(resp, list);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
主页热销书籍和最新书籍动态加载
function appendBook($node,data,level,htmlstr){
var ctx = $("#ctx").val();
var start = level * 6;
htmlstr+='<ul class="arivals">';
var len=data.length;
for(i= start;i<start+6;i++){
if(i==len){
break;
}
htmlstr+='<li>';
htmlstr+='<a href="#"><img src="'+ctx+'/static/'+data[i].image+'" /></a>';
console.log(htmlstr);
htmlstr+='<p>'+data[i].name+'</p>';
htmlstr+='<p class="red">¥'+data[i].price+'</p></li>';
}
htmlstr+='<div class="fixed"></div></ul>';
level++;
if(start+6>=len){
$node.append(htmlstr);
}else{
appendBook($node,data,level,htmlstr);
}
}
加载热门书籍js:
//加载熱銷书籍(递归)
$.ajax({
url:ctx+'/book.action?opt=hots',
success:function(data){
data =eval('('+data+')');
appendBook($('.main_div_hots'),data.data,0,"");
}
});
})
dao方法:
/**
* 热销书籍
* @param book
* @param pageBean
* @return
* @throws Exception
*/
public List<Book> hots(Book book,PageBean pageBean) throws Exception{
String sql="select * from t_easyui_book where state =2 order by sales desc limit 12";
return super.executeQuery(sql, pageBean, Book.class);
}
加载最新上架书籍js:
//加载新书(递归)
$.ajax({
url:ctx+'/book.action?opt=news',
success:function(data){
data =eval('('+data+')');
appendBook($('.main_div_news'),data.data,0,"");
}
});
dao方法:
/**
* 门户新书上架
* @param book
* @param pageBean
* @return
* @throws Exception
*/
public List<Book> news(Book book,PageBean pageBean) throws Exception{
String sql="select * from t_easyui_book where state =2 order by deploytime desc limit 12";
return super.executeQuery(sql, pageBean, Book.class);
}
效果图:
智能推荐
Spring-IOC控制反转
一.概念 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的...
txt文件上传后直接解析
** 废话不多说,直接上代码 用postman请求数据测试; 完美拿到了数据。...
搜索二维矩阵
问题描述: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-a-2d-matrix 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注...
vue的生命周期
一.概述 vue对象初始化过程中,会执行到beforeCreate,created,beforeMount,mounted 这几个钩子的内容 **beforeCreate **:数据还没有监听,没有绑定到vue对象实例,同时也没有挂载对象 created** **:数据已经绑定到了对象实例,但是还没有挂载对象 beforeMount*** 模板已经编译好了,根据数据和模板已经生成了对应的元素对象,...
学习淘淘商城第四十七课(搜索功能Service实现)
首先我们在taotao-search-interface工程新建一个接口类SearchService,并在接口类中添加一个接口,如下图所示。 接着,我们到taotao-search-service工程添加一个实现类SearchServiceImpl,并实现SearchService接口,...
猜你喜欢
热压烧结制备AlN/球形碳复相微波衰减材料及其性能
Microwave attenuating material is a kind of absorbing material used to absorb electromagnetic waves in a specific frequency band. It is mainly used in vacuum electronic devices such as radar, early wa...
阈值分割
阈值分割 设置一定的条件,将像素值分为两类或多类,并修改图像的像素值,主要针对灰度图像 注:阈值分割不是二值化,因为阈值分割的结果不是两个值 固定阈值分割(经验阈值) 阈值的方式有五种: 自适应阈值分割 可以看出固定阈值分割在整张图像中应用一个阈值,不能够适用于明暗不均的图像分割。自适应阈值每次取出图像的一小部分计算阈值,使得在一张图像中不同部分使用不同的阈值,可以更好分割图像。 小区域阈值计算方...
这一篇你一定别看,赶紧去下载微信读书吧!
大家好,我是天作。 这个世界上有两件事,几乎所有人都认为是好事,但实际真正去做这两件事的人少之又少,或者说能坚持下来的人不多。 这两件事就是读书和运动。 回想一下,你有多久没有认真的读完过一本书了?你有多久没运动了? 记得白岩松说过:“人生是一个棋盘,当你读的书少,棋盘上的棋子很少,不成势,随时可能被人吃掉。读的足够多,人生就成势了。 ” 我理解的这句话,大概就是...
Linux 基础-进程、线程、协程
文中代码示例: python 进程 服务器进程管理: 进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。 进程之间通信: 管道(Pipe)、命名管道(FIFO)、消息队列(Message Queue) 、信号量...
使用pygame做多个触壁反弹小球
代码少,就把类文件和函数文件放一块了。颜色随机,小球个数number适当调整,在这种算法下比较吃显卡 20个方块就是这个样子 ...