当前位置: 首页 > news >正文

033 商品搜索

文章目录

    • SearchController.java
    • Page.java
    • SpuInfoServiceImpl.java
    • SpuInfoService.java
    • CubemallSearchApplication.java
    • search.html
    • pom.xml

功能分析

页面回显的数据:
searchMap

keywords:搜索的关键词

brand:过滤条件-品牌

category:过滤条件-分类列表

price:价格区间过滤条件

result:
brandList 品牌列表,可以通过聚合查询得到
categoryList
rows 商品列表

url:回显搜索的url,其中包含查询条件和过滤条件

page:
upper 上一页
currentpage 当前页
lpage、rpage 显示的最左和最右的页数
next 下一页
last 最后一页
total 总页数

请求的url:
/search/list

请求的方法:
get

参数:
keywords:查询的关键词
brand:品牌名称
category:分类名称
price:价格区间,使用"-"分割区间
sortRule:排序规则
sortField:排序字段
pageNum:页码

Service

  1. 接收controller传递的参数
  2. 根据参数封装查询条件
    根据关键词查询
    品牌过滤
    分类过滤
    价格区间过滤
    排序
    分页
    高亮
    聚合条件:品牌、分类
  3. 执行查询
  4. 取返回结果
    总记录数
    商品列表
    聚合结果

Controller

  1. 接收页面提交的参数,封装成一个Map对象
  2. 调用service完成搜索功能,参数就是页面传递过来的参数
  3. 封装返回的数据
  4. 返回逻辑视图,模板的名称

SearchController.java

package com.xd.cubemall.search.controller;import com.xd.cubemall.search.model.Page;
import com.xd.cubemall.search.service.SpuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;import java.util.Map;@Controller
public class SearchController {@Autowiredprivate SpuInfoService spuInfoService;@GetMapping("/search/list")public String search(@RequestParam Map<String,String> paramMap, Model model)  {if (!paramMap.containsKey("keywords")) {paramMap.put("keywords","");}Map<String, Object> resultMap = spuInfoService.search(paramMap);//取分页数据Long totalRows = Long.parseLong(resultMap.get("totalRows").toString());//当前页码int pageNum = Integer.parseInt(resultMap.get("pageNum").toString());Page page = new Page(totalRows, pageNum, 60);//4.url回显  /search/list?keywords=手机&brand=华为&category=手机StringBuilder url = new StringBuilder();url.append("/search/list");//8.排序url特殊处理StringBuilder sortUrl = new StringBuilder();sortUrl.append("/search/list");builderUrl(url, sortUrl, paramMap);model.addAttribute("url", url);model.addAttribute("sortUrl", sortUrl);//向页面返回结果model.addAttribute("searchMap",paramMap);model.addAttribute("result",resultMap);model.addAttribute("url",url);model.addAttribute("page",page);//返回模板名称return "search";}/*** 拼接翻页url地址中的携带参数* @param url* @param sortUrl* @param searchMap*/private void builderUrl(StringBuilder url, StringBuilder sortUrl, Map<String, String> searchMap) {if(!CollectionUtils.isEmpty(searchMap)){// /search/list?keywords=手机&brand=华为url.append("?");sortUrl.append("?");for (Map.Entry<String, String> entry : searchMap.entrySet()) {String key = entry.getKey();String value = entry.getValue();//7.排除pageNum参与url拼接if(!key.equals("pageNum")){//5.特殊符号 + 处理if(key.startsWith("spec")){value = value.replace("+", "%2B");}//6. 删除版本特殊字符页面问题 482行 改为//  <a th:href="@{${#strings.replace(url,'&'+sm.key+'='+#strings.replace(sm.value,'+','%2B'),'')}}">×</a>//拼接查询条件url.append(key);url.append("=");url.append(value);url.append("&");/*方式二: 将sortUrl拼接放到pageNum的判断中排序url特殊处理不需要拼接排序字段和规则*/if(!key.equals("sortRule") && !key.equals("sortField")){sortUrl.append(key);sortUrl.append("=");sortUrl.append(value);sortUrl.append("&");}}}//将最后一位删除 根据下标删除元素url.deleteCharAt(url.length()-1);sortUrl.deleteCharAt(sortUrl.length()-1);}}
}

Page.java

package com.xd.cubemall.search.model;import java.io.Serializable;
import java.util.List;/*** 分页对象* @param <T>*/
public class Page<T> implements Serializable{//当前默认为第一页public static final Integer pageNum = 1;//默认每页显示条件public static final Integer pageSize = 20;//判断当前页是否为空或是小于1public static Integer cpn(Integer pageNum){if(null == pageNum || pageNum < 1){pageNum = 1;}return pageNum;}// 页数(第几页)private long currentpage;// 查询数据库里面对应的数据有多少条private long total;// 从数据库查处的总记录数// 每页查5条private int size;// 下页private int next;private List<T> list;// 最后一页private int last;private int lpage;private int rpage;//从哪条开始查private long start;//全局偏移量public int offsize = 2;public Page() {super();}/****** @param currentpage* @param total* @param pagesize*/public void setCurrentpage(long currentpage,long total,long pagesize) {//可以整除的情况下long pagecount =  total/pagesize;//如果整除表示正好分N页,如果不能整除在N页的基础上+1页int totalPages = (int) (total%pagesize==0? total/pagesize : (total/pagesize)+1);//总页数this.last = totalPages;//判断当前页是否越界,如果越界,我们就查最后一页if(currentpage>totalPages){this.currentpage = totalPages;}else{this.currentpage=currentpage;}//计算startthis.start = (this.currentpage-1)*pagesize;}//上一页public long getUpper() {return currentpage>1? currentpage-1: currentpage;}//总共有多少页,即末页public void setLast(int last) {this.last = (int) (total%size==0? total/size : (total/size)+1);}/***** 带有偏移量设置的分页* @param total* @param currentpage* @param pagesize* @param offsize*/public Page(long total, int currentpage, int pagesize, int offsize) {this.offsize = offsize;initPage(total, currentpage, pagesize);}/****** @param total   总记录数* @param currentpage	当前页* @param pagesize	每页显示多少条*/public Page(long total, int currentpage, int pagesize) {initPage(total,currentpage,pagesize);}/***** 初始化分页* @param total* @param currentpage* @param pagesize*/public void initPage(long total,int currentpage,int pagesize){//总记录数this.total = total;//每页显示多少条this.size=pagesize;//计算当前页和数据库查询起始值以及总页数setCurrentpage(currentpage, total, pagesize);//分页计算int leftcount =this.offsize,	//需要向上一页执行多少次rightcount =this.offsize;//起点页this.lpage =currentpage;//结束页this.rpage =currentpage;//2点判断this.lpage = currentpage-leftcount;			//正常情况下的起点this.rpage = currentpage+rightcount;		//正常情况下的终点//页差=总页数和结束页的差int topdiv = this.last-rpage;				//判断是否大于最大页数/**** 起点页* 1、页差<0  起点页=起点页+页差值* 2、页差>=0 起点和终点判断*/this.lpage=topdiv<0? this.lpage+topdiv:this.lpage;/**** 结束页* 1、起点页<=0   结束页=|起点页|+1* 2、起点页>0    结束页*/this.rpage=this.lpage<=0? this.rpage+(this.lpage*-1)+1: this.rpage;/**** 当起点页<=0  让起点页为第一页* 否则不管*/this.lpage=this.lpage<=0? 1:this.lpage;/**** 如果结束页>总页数   结束页=总页数* 否则不管*/this.rpage=this.rpage>last? this.last:this.rpage;}public long getNext() {return  currentpage<last? currentpage+1: last;}public void setNext(int next) {this.next = next;}public long getCurrentpage() {return currentpage;}public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}public long getSize() {return size;}public void setSize(int size) {this.size = size;}public long getLast() {return last;}public long getLpage() {return lpage;}public void setLpage(int lpage) {this.lpage = lpage;}public long getRpage() {return rpage;}public void setRpage(int rpage) {this.rpage = rpage;}public long getStart() {return start;}public void setStart(long start) {this.start = start;}public void setCurrentpage(long currentpage) {this.currentpage = currentpage;}/*** @return the list*/public List<T> getList() {return list;}/*** @param list the list to set*/public void setList(List<T> list) {this.list = list;}}

SpuInfoServiceImpl.java

package com.xd.cubemall.search.service.impl;import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.search.dao.SpuInfoDao;
import com.xd.cubemall.search.model.SpuInfo;
import com.xd.cubemall.search.repository.SpuInfoRepository;
import com.xd.cubemall.search.service.SpuInfoService;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations;
import org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Service;import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;@Service
public class SpuInfoServiceImpl implements SpuInfoService {@Autowiredprivate SpuInfoDao spuInfoDao;@Autowiredprivate SpuInfoRepository spuInfoRepository;@Autowiredprivate ElasticsearchRestTemplate template;@Overridepublic Map<String, Object> search(Map<String, String> paramMap) {//      1) 接收controller传递的参数
//      2) 根据参数封装查询条件
//      根据关键词查询
//      品牌过滤
//      分类过滤
//      价格区间过滤
//      排序
//      分页
//      高亮
//      聚合条件:品牌、分类NativeSearchQuery query = buildQuery(paramMap);
//      3) 执行查询SearchHits<SpuInfo> searchHits = template.search(query, SpuInfo.class);
//      4) 取返回结果Map<String, Object> resultMap = parseResponse(searchHits);//计算页面long totalHits = searchHits.getTotalHits();//取当前页码String pageNumStr = paramMap.get("pageNum");int pageNum = StringUtils.isNotBlank(pageNumStr)?Integer.parseInt(pageNumStr):1;resultMap.put("pageNum", pageNum);//计算总页数int totalPages = (int) Math.ceil(totalHits / 60);resultMap.put("totalPages",totalPages);
//      总记录数
//      商品列表
//      聚合结果return resultMap;}private NativeSearchQuery buildQuery(Map<String,String> paramMap) {NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder();String keywords = paramMap.get("keywords");if (keywords == null) {keywords = "";}
//      根据关键词查询builder.withQuery(QueryBuilders.matchQuery("spuName",keywords));
//      品牌过滤String brand = paramMap.get("brand");if (StringUtils.isNotBlank(brand)) {builder.withFilter(QueryBuilders.termQuery("brandName",brand));}
//      分类过滤String category = paramMap.get("category");if (StringUtils.isNotBlank(category)) {builder.withFilter(QueryBuilders.termQuery("categoryName",category));}
//      价格区间过滤String price = paramMap.get("price");if (StringUtils.isNotBlank(price)) {String[] split = price.split("-");builder.withFilter(QueryBuilders.rangeQuery("price").gte(split[0]).lte(split[1]));}
//      排序String sortRule = paramMap.get("sortRule");String sortField = paramMap.get("sortField");if (StringUtils.isNotBlank(sortRule) && StringUtils.isNotBlank(sortField)) {if ("ASC".equals(sortRule)) {builder.withSort(SortBuilders.fieldSort(sortField).order(SortOrder.ASC));} else {builder.withSort(SortBuilders.fieldSort(sortField).order(SortOrder.DESC));}}
//      分页String pageNumString = paramMap.get("pageNum");int pageNum = 1;if (StringUtils.isNotBlank(pageNumString)) {pageNum = Integer.parseInt(pageNumString);}builder.withPageable(PageRequest.of(pageNum - 1, 60));
//      高亮builder.withHighlightBuilder(new HighlightBuilder().field("spuName").preTags("<em style=\"color:red\">").postTags("</em>"));
//      聚合条件:品牌、分类builder.addAggregation(AggregationBuilders.terms("brandGroup").field("brandName"));builder.addAggregation(AggregationBuilders.terms("categoryGroup").field("categoryName"));return builder.build();}private Map<String, Object> parseResponse(SearchHits<SpuInfo> searchHits) {Map<String, Object> resultMap = new HashMap<>();//总记录数long totalHits = searchHits.getTotalHits();resultMap.put("totalRows",totalHits);//商品列表List<SpuInfo> spuInfoList = searchHits.getSearchHits().stream().map(e -> {SpuInfo spuInfo = e.getContent();List<String> highlightField = e.getHighlightField("spuName");if (highlightField.size() > 0) {spuInfo.setSpuName(highlightField.get(0));}return spuInfo;}).collect(Collectors.toList());resultMap.put("rows",spuInfoList);//聚合结果Aggregations aggregations = searchHits.getAggregations();//取品牌列表ParsedStringTerms brandGroup = aggregations.get("brandGroup");List<String> brandList = brandGroup.getBuckets().stream().map(b -> b.getKeyAsString()).collect(Collectors.toList());resultMap.put("brandList",brandList);//取分类列表ParsedStringTerms categoryGroup = aggregations.get("categoryGroup");List<String> categoryList = categoryGroup.getBuckets().stream().map(b -> b.getKeyAsString()).collect(Collectors.toList());resultMap.put("categoryList",categoryList);return resultMap;}@Overridepublic R putOnSale(long spuId) {
//        1.根据spuId查询对象的商品数据SpuInfo spuInfo = spuInfoDao.getSpuInfoById(spuId);//        2.商品数据包含的字段 Entity中包含的字段
//        3.使用ElasticSearchRepository对象将数据添加到索引库中spuInfoRepository.save(spuInfo);
//        4.返回结果return R.ok();}@Overridepublic R syncSpuInfo() {
//        1) 把所有的商品数据查询出来List<SpuInfo> infoList = spuInfoDao.getSpuInfoList();//        2) 把商品数据导入到ES中spuInfoRepository.saveAll(infoList);//返回结果return R.ok();}
}

SpuInfoService.java

package com.xd.cubemall.search.service;import com.xd.cubemall.common.utils.R;import java.util.Map;public interface SpuInfoService {public R putOnSale(long spuId);public R syncSpuInfo();Map<String, Object> search(Map<String,String> paramMap);}

CubemallSearchApplication.java

package com.xd.cubemall.search;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.xd.cubemall.search.dao")
public class CubemallSearchApplication{public static void main(String[] args) {SpringApplication.run(CubemallSearchApplication.class);}
}

search.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"><head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /><title>产品列表页</title><link rel="icon" href="/img/favicon.ico"><link rel="stylesheet" type="text/css" href="/css/all.css" /><link rel="stylesheet" type="text/css" href="/css/pages-list.css" />
</head><body><!-- 头部栏位 --><!--页面顶部-->
<div id="nav-bottom"><!--顶部--><div class="nav-top"><div class="top"><div class="py-container"><div class="shortcut"><ul class="fl"><li class="f-item">魔方欢迎您!</li><li class="f-item"><a href="http://login.jn.com:9200/oauth/toLogin" target="_blank">登录</a> <span><a href="register.html" target="_blank">免费注册</a></span></li></ul><div class="fr typelist"><ul class="types"><li class="f-item"><span>我的订单</span></li><li class="f-item"><span><a href="http://web.jn.com:9001/wcart/list" target="_blank">我的购物车</a></span></li><li class="f-item"><span><a href="home.html" target="_blank">我的魔方</a></span></li><li class="f-item"><span>魔方会员</span></li><li class="f-item"><span>企业采购</span></li><li class="f-item"><span>关注魔方</span></li><li class="f-item"><span><a href="cooperation.html" target="_blank">合作招商</a></span></li><li class="f-item"><span><a href="shoplogin.html" target="_blank">商家后台</a></span></li><li class="f-item"><span>网站导航</span></li></ul></div></div></div></div><!--头部--><div class="header"><div class="py-container"><div class="yui3-g Logo"><div class="yui3-u Left logoArea"><a class="logo-bd" title="魔方" href="index.html" target="_blank"></a></div><div class="yui3-u Rit searchArea"><div class="search"><form action="/search/list" class="sui-form form-inline"><!--searchAutoComplete--><div class="input-append"><input type="text" id="autocomplete" name="keywords" th:value="${searchMap.keywords}"  class="input-error input-xxlarge" /><button class="sui-btn btn-xlarge btn-danger" type="submit">搜索</button></div></form></div></div></div></div></div></div>
</div><!-- 商品分类导航 --><div class="typeNav"><div class="py-container"><div class="yui3-g NavList"><div class="all-sorts-list"><div class="yui3-u Left all-sort"><h4>全部商品分类</h4></div><div class="sort"><div class="all-sort-list2"><div class="item bo"><h3><a href="">图书、音像、数字商品</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书</a></dt><dd><a href="">免费</a><a href="">小说</a></em><a href="">励志与成功</a><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">家用电器</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书1</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl><dl class="fore6"><dt>经管励志</dt><dd><em><a href="">经济</a></em><em><a href="">金融与投资</a></em><em><a href="">管理</a></em><em><a href="">励志与成功</a></em></dd></dl><dl class="fore7"><dt>生活</dt><dd><em><a href="">家庭与育儿</a></em><em><a href="">旅游/地图</a></em><em><a href="">烹饪/美食</a></em><em><a href="">时尚/美妆</a></em><em><a href="">家居</a></em><em><a href="">婚恋与两性</a></em><em><a href="">娱乐/休闲</a></em><em><a href="">健身与保健</a></em><em><a href="">动漫/幽默</a></em><em><a href="">体育/运动</a></em></dd></dl><dl class="fore8"><dt>科技</dt><dd><em><a href="">科普</a></em><em><a href="">IT</a></em><em><a href="">建筑</a></em><em><a href="">医学</a></em><em><a href="">工业技术</a></em><em><a href="">电子/通信</a></em><em><a href="">农林</a></em><em><a href="">科学与自然</a></em></dd></dl><dl class="fore9"><dt>少儿</dt><dd><em><a href="">少儿</a></em><em><a href="">0-2岁</a></em><em><a href="">3-6岁</a></em><em><a href="">7-10岁</a></em><em><a href="">11-14岁</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">手机、数码</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书2</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">电脑、办公</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书3</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl><dl class="fore6"><dt>经管励志</dt><dd><em><a href="">经济</a></em><em><a href="">金融与投资</a></em><em><a href="">管理</a></em><em><a href="">励志与成功</a></em></dd></dl><dl class="fore7"><dt>生活</dt><dd><em><a href="">家庭与育儿</a></em><em><a href="">旅游/地图</a></em><em><a href="">烹饪/美食</a></em><em><a href="">时尚/美妆</a></em><em><a href="">家居</a></em><em><a href="">婚恋与两性</a></em><em><a href="">娱乐/休闲</a></em><em><a href="">健身与保健</a></em><em><a href="">动漫/幽默</a></em><em><a href="">体育/运动</a></em></dd></dl><dl class="fore8"><dt>科技</dt><dd><em><a href="">科普</a></em><em><a href="">IT</a></em><em><a href="">建筑</a></em><em><a href="">医学</a></em><em><a href="">工业技术</a></em><em><a href="">电子/通信</a></em><em><a href="">农林</a></em><em><a href="">科学与自然</a></em></dd></dl><dl class="fore9"><dt>少儿</dt><dd><em><a href="">少儿</a></em><em><a href="">0-2岁</a></em><em><a href="">3-6岁</a></em><em><a href="">7-10岁</a></em><em><a href="">11-14岁</a></em></dd></dl><dl class="fore10"><dt>教育</dt><dd><em><a href="">教材教辅</a></em><em><a href="">考试</a></em><em><a href="">外语学习</a></em></dd></dl><dl class="fore11"><dt>其它</dt><dd><em><a href="">英文原版书</a></em><em><a href="">港台图书</a></em><em><a href="">工具书</a></em><em><a href="">套装书</a></em><em><a href="">杂志/期刊</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">家居、家具、家装、厨具</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书4</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl><dl class="fore6"><dt>经管励志</dt><dd><em><a href="">经济</a></em><em><a href="">金融与投资</a></em><em><a href="">管理</a></em><em><a href="">励志与成功</a></em></dd></dl><dl class="fore7"><dt>生活</dt><dd><em><a href="">家庭与育儿</a></em><em><a href="">旅游/地图</a></em><em><a href="">烹饪/美食</a></em><em><a href="">时尚/美妆</a></em><em><a href="">家居</a></em><em><a href="">婚恋与两性</a></em><em><a href="">娱乐/休闲</a></em><em><a href="">健身与保健</a></em><em><a href="">动漫/幽默</a></em><em><a href="">体育/运动</a></em></dd></dl><dl class="fore8"><dt>科技</dt><dd><em><a href="">科普</a></em><em><a href="">IT</a></em><em><a href="">建筑</a></em><em><a href="">医学</a></em><em><a href="">工业技术</a></em><em><a href="">电子/通信</a></em><em><a href="">农林</a></em><em><a href="">科学与自然</a></em></dd></dl><dl class="fore9"><dt>少儿</dt><dd><em><a href="">少儿</a></em><em><a href="">0-2岁</a></em><em><a href="">3-6岁</a></em><em><a href="">7-10岁</a></em><em><a href="">11-14岁</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">服饰内衣</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书5</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl><dl class="fore6"><dt>经管励志</dt><dd><em><a href="">经济</a></em><em><a href="">金融与投资</a></em><em><a href="">管理</a></em><em><a href="">励志与成功</a></em></dd></dl><dl class="fore7"><dt>生活</dt><dd><em><a href="">家庭与育儿</a></em><em><a href="">旅游/地图</a></em><em><a href="">烹饪/美食</a></em><em><a href="">时尚/美妆</a></em><em><a href="">家居</a></em><em><a href="">婚恋与两性</a></em><em><a href="">娱乐/休闲</a></em><em><a href="">健身与保健</a></em><em><a href="">动漫/幽默</a></em><em><a href="">体育/运动</a></em></dd></dl><dl class="fore8"><dt>科技</dt><dd><em><a href="">科普</a></em><em><a href="">IT</a></em><em><a href="">建筑</a></em><em><a href="">医学</a></em><em><a href="">工业技术</a></em><em><a href="">电子/通信</a></em><em><a href="">农林</a></em><em><a href="">科学与自然</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">个护化妆</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书6</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl><dl class="fore6"><dt>经管励志</dt><dd><em><a href="">经济</a></em><em><a href="">金融与投资</a></em><em><a href="">管理</a></em><em><a href="">励志与成功</a></em></dd></dl><dl class="fore7"><dt>生活</dt><dd><em><a href="">家庭与育儿</a></em><em><a href="">旅游/地图</a></em><em><a href="">烹饪/美食</a></em><em><a href="">时尚/美妆</a></em><em><a href="">家居</a></em><em><a href="">婚恋与两性</a></em><em><a href="">娱乐/休闲</a></em><em><a href="">健身与保健</a></em><em><a href="">动漫/幽默</a></em><em><a href="">体育/运动</a></em></dd></dl><dl class="fore8"><dt>科技</dt><dd><em><a href="">科普</a></em><em><a href="">IT</a></em><em><a href="">建筑</a></em><em><a href="">医学</a></em><em><a href="">工业技术</a></em><em><a href="">电子/通信</a></em><em><a href="">农林</a></em><em><a href="">科学与自然</a></em></dd></dl><dl class="fore9"><dt>少儿</dt><dd><em><a href="">少儿</a></em><em><a href="">0-2岁</a></em><em><a href="">3-6岁</a></em><em><a href="">7-10岁</a></em><em><a href="">11-14岁</a></em></dd></dl><dl class="fore10"><dt>教育</dt><dd><em><a href="">教材教辅</a></em><em><a href="">考试</a></em><em><a href="">外语学习</a></em></dd></dl><dl class="fore11"><dt>其它</dt><dd><em><a href="">英文原版书</a></em><em><a href="">港台图书</a></em><em><a href="">工具书</a></em><em><a href="">套装书</a></em><em><a href="">杂志/期刊</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">运动健康</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书7</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl></div><div class="cat-right"><dl class="categorys-brands" clstag="homepage|keycount|home2013|0601d"><dt>推荐品牌出版商</dt><dd><ul><li><a href="">中华书局</a></li><li><a href="">人民邮电出版社</a></li></ul></dd></dl></div></div></div><div class="item"><h3><a href="">汽车用品</a></h3><div class="item-list clearfix"><div class="subitem"><dl class="fore1"><dt><a href="">电子书8</a></dt><dd><em><a href="">免费</a></em><em><a href="">小说</a></em><em><a href="">励志与成功</a></em><em><a href="">婚恋/两性</a></em><em><a href="">文学</a></em><em><a href="">经管</a></em><em><a href="">畅读VIP</a></em></dd></dl><dl class="fore2"><dt><a href="">数字音乐</a></dt><dd><em><a href="">通俗流行</a></em><em><a href="">古典音乐</a></em><em><a href="">摇滚说唱</a></em><em><a href="">爵士蓝调</a></em><em><a href="">乡村民谣</a></em><em><a href="">有声读物</a></em></dd></dl><dl class="fore3"><dt><a href="">音像</a></dt><dd><em><a href="">音乐</a></em><em><a href="">影视</a></em><em><a href="">教育音像</a></em><em><a href="">游戏</a></em></dd></dl><dl class="fore4"><dt>文艺</dt><dd><em><a href="">小说</a></em><em><a href="">文学</a></em><em><a href="">青春文学</a></em><em><a href="">传记</a></em><em><a href="">艺术</a></em></dd></dl><dl class="fore5"><dt>人文社科</dt><dd><em><a href="">历史</a></em><em><a href="">心理学</a></em><em><a href="">政治/军事</a></em><em><a href="">国学/古籍</a></em><em><a href="">哲学/宗教</a></em><em><a href="">社会科学</a></em></dd></dl><dl class="fore6"><dt>经管励志</dt><dd><em><a href="">经济</a></em><em><a href="">金融与投资</a></em><em><a href="">管理</a></em><em><a href="">励志与成功</a></em></dd></dl><dl class="fore7"><dt>生活</dt><dd><em><a href="">家庭与育儿</a></em><em><a href="">旅游/地图</a></em><em><a href="">烹饪/美食</a></em><em><a href="">时尚/美妆</a></em><em><a href="">家居</a></em><em><a href="">婚恋与两性</a></em><em><a href="">娱乐/休闲</a></em><em><a href="">健身与保健</a></em><em><a href="">动漫/幽默</a></em><em><a href="">体育/运动</a></em></dd></dl><dl class="fore8"><dt>科技</dt><dd><em><a href="">科普</a></em><em><a href="">IT</a></em><em><a href="">建筑</a></em><em><a href="">医学</a></em><em><a href="">工业技术</a></em><em><a href="">电子/通信</a></em><em><a href="">农林</a></em><em><a href="">科学与自然</a></em></dd></dl></div></div></div><div class="item"><h3><a href="">彩票、旅行</a></h3></div><div class="item"><h3><a href="">理财、众筹</a></h3></div><div class="item"><h3><a href="">母婴、玩具</a></h3></div><div class="item"><h3><a href="">箱包</a></h3></div><div class="item"><h3><a href="">运动户外</a></h3></div><div class="item"><h3><a href="">箱包</a></h3></div></div></div></div><div class="yui3-u Center navArea"><ul class="nav"><li class="f-item">服装城</li><li class="f-item">美妆馆</li><li class="f-item">魔方超市</li><li class="f-item">全球购</li><li class="f-item">闪购</li><li class="f-item">团购</li><li class="f-item">有趣</li><li class="f-item"><a href="seckill-index.html" target="_blank">秒杀</a></li></ul></div><div class="yui3-u Right"></div>
</div></div></div><!--list-content--><div class="main"><div class="py-container"><!--bread--><div class="bread"><ul class="fl sui-breadcrumb"><li><a href="#">全部结果</a></li><li  class="active"><span th:text="${searchMap.keywords}"></span></li></ul><ul class="fl sui-tag"><li th:if="${#maps.containsKey(searchMap, 'brand')}" class="with-x">品牌:<span th:text="${searchMap.brand}"></span><a th:href="@{${#strings.replace(url,'&brand='+searchMap.brand,'')}}">×</a></li><li th:if="${#maps.containsKey(searchMap, 'category')}" class="with-x">分类:<span th:text="${searchMap.category}"></span><a th:href="@{${#strings.replace(url,'&category='+searchMap.category,'')}}">×</a></li><li th:if="${#maps.containsKey(searchMap, 'price')}" class="with-x">价格:<span th:text="${searchMap.price}"></span><a th:href="@{${#strings.replace(url,'&price='+searchMap.price,'')}}">×</a></li><!-- <li th:if="${#strings.startsWith(sm.key,'spec_')}" th:each="sm : ${searchMap}" class="with-x"><span th:text="${#strings.replace(sm.key,'spec_','')}"></span>:<span th:text="${#strings.replace(sm.value,'%2B','+')}"></span><a th:href="@{${#strings.replace(url,'&'+sm.key+'='+sm.value,'')}}">×</a></li> --></ul></div><script>function toSearch(url){window.location.href = encodeURIComponent(url);}</script><!--selector--><div class="clearfix selector"><div class="type-wrap logo" th:unless="${#maps.containsKey(searchMap, 'brand')}"><div class="fl key brand">品牌</div><div class="value logos"><ul class="logo-list"><li th:each="brand,brandStat:${result.brandList}"><a th:href="@{${url}(brand=${brand})}" th:text="${brand}"></a></li></ul></div><div class="ext"><a href="javascript:void(0);" class="sui-btn">多选</a><a href="javascript:void(0);">更多</a></div></div><div class="clearfix selector"><div class="type-wrap logo" th:unless="${#maps.containsKey(searchMap, 'category')}"><div class="fl key category">分类</div><div class="value logos"><ul class="type-list"><li th:each="cat,catStat:${result.categoryList}"><a th:href="@{${url}(category=${cat})}" th:text="${cat}"></a></li></ul></div><div class="ext"><a href="javascript:void(0);" class="sui-btn">多选</a><a href="javascript:void(0);">更多</a></div></div><!-- <div class="type-wrap" th:each="spec,specStat:${result.specList}" th:unless="${#maps.containsKey(searchMap, 'spec_'+spec.key)}"><div class="fl key" th:text="${spec.key}"></div><div class="fl value"><ul class="type-list"><li th:each="op,opStat:${spec.value}"><a th:href="@{${url}('spec_'+${spec.key}=${op})}" th:text="${op}"></a></li></ul></div><div class="fl ext"></div></div> --><div class="type-wrap" th:unless="${#maps.containsKey(searchMap, 'price')}"><div class="fl key">价格</div><div class="fl value"><ul class="type-list"><li><a th:href="@{${url}(price='0-500')}" th:text="0-500元"></a></li><li><a th:href="@{${url}(price='500-1000')}" th:text="500-1000元"></a></li><li><a th:href="@{${url}(price='1000-1500')}" th:text="1000-1500元"></a></li><li><a th:href="@{${url}(price='1500-2000')}" th:text="1500-2000元"></a></li><li><a th:href="@{${url}(price='2000-3000')}" th:text="2000-3000元"></a></li><li><a th:href="@{${url}(price='3000-*')}" th:text="3000元以上"></a></li></ul></div><div class="fl ext"></div></div><div class="type-wrap"><div class="fl key">更多筛选项</div><div class="fl value"><ul class="type-list"><li><a>特点</a></li><li><a>系统</a></li><li><a>手机内存 </a></li><li><a>单卡双卡</a></li><li><a>其他</a></li></ul></div><div class="fl ext"></div></div></div><!--details--><div id="glist" class="details"><div class="sui-navbar"><div class="navbar-inner filter"><ul class="sui-nav"><li class="active"><a href="#">综合</a></li><li><a href="#">销量</a></li><li><a href="#">新品</a></li><li><a href="#">评价</a></li><li><a th:href="@{${url}(sortRule='ASC',sortField='price')}">价格↑</a></li><li><a th:href="@{${url}(sortRule='DESC',sortField='price')}">价格↓</a></li></ul></div></div><div class="goods-list"><ul class="yui3-g"><li class="yui3-u-1-5" th:each="spu,spuStat:${result.rows}"><div class="list-wrap"><div class="p-img"><a th:href="'//item.jn.com:9011/items/'+${spu.id}+'.html'"  target="_blank"><img th:src="${spu.imgUrl}" /></a></div><div class="price"><strong><em>¥</em><i th:text="${spu.price}"></i></strong></div><div class="attr"><a th:utext="${spu.spuName}" target="_blank" th:href="'//item.jn.com:9011/items/'+${spu.id}+'.html'"   th:title="${spu.spuName}"></a></div><div class="commit"><i class="command">已有<span>2000</span>人评价</i></div><div class="operate"><a href="success-cart.html" target="_blank" class="sui-btn btn-bordered btn-danger">加入购物车</a><a href="javascript:void(0);" class="sui-btn btn-bordered">收藏</a></div></div></li></ul></div><div class="fr page"><div class="sui-pagination pagination-large"><ul><li class="prev disabled"><a th:href="@{${url}(pageNum=page.upper)}">«上一页</a></li><li th:each="i:${#numbers.sequence(page.lpage,page.rpage)}" th:class="${i}==${page.currentpage}? 'active':''"><a th:href="@{${url}(pageNum=${i})}" th:text="${i}"></a></li><li class="next"><a th:href="@{${url}(pageNum=${page.next})}">下一页»</a></li></ul><div><span><i th:text="${page.last}"></i>&nbsp;</span><span><i th:text="${page.total}"></i>条数&nbsp;</span></div></div></div></div><!--hotsale--><div class="clearfix hot-sale"><h4 class="title">热卖商品</h4><div class="hot-list"><ul class="yui3-g"><li class="yui3-u-1-4"><div class="list-wrap"><div class="p-img"><img src="/img/like_01.png" /></div><div class="attr"><em>Apple苹果iPhone 6s (A1699)</em></div><div class="price"><strong><em>¥</em><i>4088.00</i></strong></div><div class="commit"><i class="command">已有700人评价</i></div></div></li><li class="yui3-u-1-4"><div class="list-wrap"><div class="p-img"><img src="/img/like_03.png" /></div><div class="attr"><em>金属A面,360°翻转,APP下单省300!</em></div><div class="price"><strong><em>¥</em><i>4088.00</i></strong></div><div class="commit"><i class="command">已有700人评价</i></div></div></li><li class="yui3-u-1-4"><div class="list-wrap"><div class="p-img"><img src="/img/like_04.png" /></div><div class="attr"><em>256SSD商务大咖,完爆职场,APP下单立减200</em></div><div class="price"><strong><em>¥</em><i>4068.00</i></strong></div><div class="commit"><i class="command">已有20人评价</i></div></div></li><li class="yui3-u-1-4"><div class="list-wrap"><div class="p-img"><img src="/img/like_02.png" /></div><div class="attr"><em>Apple苹果iPhone 6s (A1699)</em></div><div class="price"><strong><em>¥</em><i>4088.00</i></strong></div><div class="commit"><i class="command">已有700人评价</i></div></div></li></ul></div></div></div></div><!-- 底部栏位 --><!--页面底部-->
<div class="clearfix footer"><div class="py-container"><div class="footlink"><div class="Mod-service"><ul class="Mod-Service-list"><li class="grid-service-item intro  intro1"><i class="serivce-item fl"></i><div class="service-text"><h4>正品保障</h4><p>正品保障,提供发票</p></div></li><li class="grid-service-item  intro intro2"><i class="serivce-item fl"></i><div class="service-text"><h4>正品保障</h4><p>正品保障,提供发票</p></div></li><li class="grid-service-item intro  intro3"><i class="serivce-item fl"></i><div class="service-text"><h4>正品保障</h4><p>正品保障,提供发票</p></div></li><li class="grid-service-item  intro intro4"><i class="serivce-item fl"></i><div class="service-text"><h4>正品保障</h4><p>正品保障,提供发票</p></div></li><li class="grid-service-item intro intro5"><i class="serivce-item fl"></i><div class="service-text"><h4>正品保障</h4><p>正品保障,提供发票</p></div></li></ul></div><div class="clearfix Mod-list"><div class="yui3-g"><div class="yui3-u-1-6"><h4>购物指南</h4><ul class="unstyled"><li>购物流程</li><li>会员介绍</li><li>生活旅行/团购</li><li>常见问题</li><li>购物指南</li></ul></div><div class="yui3-u-1-6"><h4>配送方式</h4><ul class="unstyled"><li>上门自提</li><li>211限时达</li><li>配送服务查询</li><li>配送费收取标准</li><li>海外配送</li></ul></div><div class="yui3-u-1-6"><h4>支付方式</h4><ul class="unstyled"><li>货到付款</li><li>在线支付</li><li>分期付款</li><li>邮局汇款</li><li>公司转账</li></ul></div><div class="yui3-u-1-6"><h4>售后服务</h4><ul class="unstyled"><li>售后政策</li><li>价格保护</li><li>退款说明</li><li>返修/退换货</li><li>取消订单</li></ul></div><div class="yui3-u-1-6"><h4>特色服务</h4><ul class="unstyled"><li>夺宝岛</li><li>DIY装机</li><li>延保服务</li><li>魔方E卡</li><li>魔方通信</li></ul></div><div class="yui3-u-1-6"><h4>帮助中心</h4><img src="./img/wx_cz.jpg"></div></div></div><div class="Mod-copyright"><ul class="helpLink"><li>关于我们<span class="space"></span></li><li>联系我们<span class="space"></span></li><li>关于我们<span class="space"></span></li><li>商家入驻<span class="space"></span></li><li>营销中心<span class="space"></span></li><li>友情链接<span class="space"></span></li><li>关于我们<span class="space"></span></li><li>营销中心<span class="space"></span></li><li>友情链接<span class="space"></span></li><li>关于我们</li></ul><p></p><p></p></div></div></div>
</div>
<!--页面底部END--><!-- 基础js库 --><!--侧栏面板开始-->
<div class="J-global-toolbar"><div class="toolbar-wrap J-wrap"><div class="toolbar"><div class="toolbar-panels J-panel"><!-- 购物车 --><div style="visibility: hidden;" class="J-content toolbar-panel tbar-panel-cart toolbar-animate-out"><h3 class="tbar-panel-header J-panel-header"><a href="" class="title"><i></i><em class="title">购物车</em></a><span class="close-panel J-close" onclick="cartPanelView.tbar_panel_close('cart');" ></span></h3><div class="tbar-panel-main"><div class="tbar-panel-content J-panel-content"><div id="J-cart-tips" class="tbar-tipbox hide"><div class="tip-inner"><span class="tip-text">还没有登录,登录后商品将被保存</span><a href="#none" class="tip-btn J-login">登录</a></div></div><div id="J-cart-render"><!-- 列表 --><div id="cart-list" class="tbar-cart-list"></div></div></div></div><!-- 小计 --><div id="cart-footer" class="tbar-panel-footer J-panel-footer"><div class="tbar-checkout"><div class="jtc-number"> <strong class="J-count" id="cart-number">0</strong>件商品 </div><div class="jtc-sum"> 共计:<strong class="J-total" id="cart-sum">¥0</strong> </div><a class="jtc-btn J-btn" href="#none" target="_blank">去购物车结算</a></div></div></div><!-- 我的关注 --><div style="visibility: hidden;" data-name="follow" class="J-content toolbar-panel tbar-panel-follow"><h3 class="tbar-panel-header J-panel-header"><a href="#" target="_blank" class="title"> <i></i> <em class="title">我的关注</em> </a><span class="close-panel J-close" onclick="cartPanelView.tbar_panel_close('follow');"></span></h3><div class="tbar-panel-main"><div class="tbar-panel-content J-panel-content"><div class="tbar-tipbox2"><div class="tip-inner"> <i class="i-loading"></i> </div></div></div></div><div class="tbar-panel-footer J-panel-footer"></div></div><!-- 我的足迹 --><div style="visibility: hidden;" class="J-content toolbar-panel tbar-panel-history toolbar-animate-in"><h3 class="tbar-panel-header J-panel-header"><a href="#" target="_blank" class="title"> <i></i> <em class="title">我的足迹</em> </a><span class="close-panel J-close" onclick="cartPanelView.tbar_panel_close('history');"></span></h3><div class="tbar-panel-main"><div class="tbar-panel-content J-panel-content"><div class="jt-history-wrap"><ul><!--<li class="jth-item"><a href="#" class="img-wrap"> <img src="../../.../portal/img/like_03.png" height="100" width="100" /> </a><a class="add-cart-button" href="#" target="_blank">加入购物车</a><a href="#" target="_blank" class="price">¥498.00</a></li><li class="jth-item"><a href="#" class="img-wrap"> <img src="../../../portal/img/like_02.png" height="100" width="100" /></a><a class="add-cart-button" href="#" target="_blank">加入购物车</a><a href="#" target="_blank" class="price">¥498.00</a></li>--></ul><a href="#" class="history-bottom-more" target="_blank">查看更多足迹商品 &gt;&gt;</a></div></div></div><div class="tbar-panel-footer J-panel-footer"></div></div></div><div class="toolbar-header"></div><!-- 侧栏按钮 --><div class="toolbar-tabs J-tab"><div onclick="cartPanelView.tabItemClick('cart')" class="toolbar-tab tbar-tab-cart" data="购物车" tag="cart" ><i class="tab-ico"></i><em class="tab-text"></em><span class="tab-sub J-count " id="tab-sub-cart-count">0</span></div><div onclick="cartPanelView.tabItemClick('follow')" class="toolbar-tab tbar-tab-follow" data="我的关注" tag="follow" ><i class="tab-ico"></i><em class="tab-text"></em><span class="tab-sub J-count hide">0</span></div><div onclick="cartPanelView.tabItemClick('history')" class="toolbar-tab tbar-tab-history" data="我的足迹" tag="history" ><i class="tab-ico"></i><em class="tab-text"></em><span class="tab-sub J-count hide">0</span></div></div><div class="toolbar-footer"><div class="toolbar-tab tbar-tab-top" > <a href="#"> <i class="tab-ico  "></i> <em class="footer-tab-text">顶部</em> </a> </div><div class="toolbar-tab tbar-tab-feedback" > <a href="#" target="_blank"> <i class="tab-ico"></i> <em class="footer-tab-text ">反馈</em> </a> </div></div><div class="toolbar-mini"></div></div><div id="J-toolbar-load-hook"></div></div>
</div>
<script type="text/javascript" src="/js/all.js"></script></body></html>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><artifactId>cubemall-search</artifactId><packaging>jar</packaging><name>chubemall-search</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR3</spring-cloud.version><elasticsearch.version>7.10.2</elasticsearch.version></properties><dependencies>
<!--        <dependency>-->
<!--            <groupId>junit</groupId>-->
<!--            <artifactId>junit</artifactId>-->
<!--            <version>3.8.1</version>-->
<!--            <scope>test</scope>-->
<!--        </dependency>--><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.16</version><scope>provided</scope></dependency><!--引入common公共模块--><dependency><groupId>com.xd.cubemall</groupId><artifactId>cubemall-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><!--        <dependency>-->
<!--            <groupId>org.elasticsearch.client</groupId>-->
<!--            <artifactId>elasticsearch-rest-high-level-client</artifactId>-->
<!--            <version>7.10.2</version>-->
<!--        </dependency>--><!--阿里云OSS--><!--        <dependency>--><!--            <groupId>com.aliyun.oss</groupId>--><!--            <artifactId>aliyun-sdk-oss</artifactId>--><!--            <version>3.17.4</version>--><!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>org.thymeleaf</groupId>-->
<!--            <artifactId>thymeleaf</artifactId>-->
<!--            <version>3.0.11.RELEASE</version>-->
<!--        </dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
</project>

http://www.mrgr.cn/news/55035.html

相关文章:

  • Mysql数据库 | 第三章 | insert | update | delete | select | 统计函数 | 分组统计
  • 苹果仍在研发更大尺寸的 iMac | Swift 周报 issue 60
  • docker 文件目录迁移
  • 云原生介绍
  • Windows git 配置
  • 【JAVA】第一张_Java基础语法
  • 音视频入门基础:FLV专题(17)——FFmpeg源码中,提取Video Tag的VIDEODATA的实现
  • Linux:基础IO
  • 软件测试技巧-如何定位前后端bug?
  • 营销新境界:解码品牌增长策略
  • [OpenCV] 数字图像处理 C++ 学习——17模板匹配详细讲解+附完整代码
  • 3.订阅者Subscriber的编程实现以及话题消息定义与使用后续课程
  • pgAdmin不显示template1数据库,该如何设置才可以显示?
  • ACM与蓝桥杯竞赛指南 基本输入输出格式二
  • 波浪理论(Elliott Wave Theory)
  • autosar-port/interface学习总结
  • Docker compose 安装Jenkins
  • c++迷宫游戏
  • 揭秘CSS浮动盒:掌握高度塌陷修复、文字环绕特效示艺的秘籍!!(重点秘籍!!)
  • 高清无水印推文视频素材下载网站推荐
  • vite脚手架中安装和按需引入vuetify
  • 了解这些U盘数据恢复工具,不再担忧数据丢失
  • STM32应用详解(4)读写FLASH
  • 配置管理之Nacos
  • 025_Position_Layout_in_Matlab界面布局之设定位置
  • 【C++】C++语言知识总结浅析