1、首頁分類顯示(商品分類顯示)css
一、index.html中循環代碼html
<ul class="goodsList cf"> <li class="col-md-2 col-sm-4 col-xs-6" th:each="goodsInfo,status:${typeInfo.list}"> <div class="cont"> <a th:href="@{initGoodsDetail(commodityId=${goodsInfo.commodityId})}"> <img th:src="@{showImage(pictureId=${goodsInfo.pictureId})}" alt="" style="height: 168px; width: 168px;" /></a> <h4 class="h5"> <a href="#"><p class="title" th:text="${goodsInfo.commodityName}">品美知糖道阿膠薑湯260g</p></a> </h4> <p class="num"> 庫存:<span th:text="${goodsInfo.stock}">15</span> 每<span th:text="${#strings.concat(goodsInfo.unit).concat(goodsInfo.specifications)}"> 袋15kg</span> </p> <p class="cf"> <span class="price yh">¥<span th:text="${goodsInfo.retailPrice}">15</span>元 </span> <a th:href="@{addCart}" class="btnBuy" title="加入購物車"></a> </p> </div> </li> </ul>
二、GoodsForm.java中定義變量 commodityTypeId commodityTypeName List<GoodsForm> listjava
private String commodityTypeId; private String commodityTypeName; private List<GoodsForm> list;
三、GuestController.javaweb
@RequestMapping(value = "/", method = RequestMethod.GET) public String index(Model model, HttpSession session, Device device) { log.info("系統初始化"); UVO uvo = new UVO(); session.setAttribute("UVO", uvo); GoodsForm goodsForm = new GoodsForm(); //獲取商品類型 List<GoodsForm> commodityType = goodsService.getType(); goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId()); model.addAttribute("goodsForm", goodsForm); model.addAttribute("commodityType", commodityType); //生成列表 model.addAttribute("list", goodsService.searchGoodsList(goodsForm)); GoodsForm goodsFormForId = new GoodsForm(); for (int i = 0; i < commodityType.size(); i++) { goodsFormForId.setCommodityTypeId(commodityType.get(i) .getCommodityTypeId()); commodityType.get(i).setList( goodsService.searchGoodsListLimit(goodsFormForId)); } //在頁面初始化以前用size()方法對商品類型commodityType計數,計算出有多少類型 int sum = commodityType.size(); //使用循環設置Count的值爲i+F ************ 即在前臺能夠顯示文本1F for (int i = 1; i < sum; i++) { commodityType.get(i - 1).setCount(i + "F"); } // 使用循環設置Color的值爲"columnT-"+(j%6+1) ****即在前臺能夠顯示文本相似columnT columnT-1 // 是css中定義的樣式 // j%6+1爲控制j爲1到6的循環輸出 for (int j = 0; j < sum; j++) { commodityType.get(j).setColor( "columnT" + " " + "columnT-" + (j % 6 + 1)); } List<CartForm> cartList = new ArrayList<>(); model.addAttribute("cartList", cartList); if (device.isNormal()) { return "shop/index"; } else { return "mobile/index"; } }
四、GoodsControl.javasession
@RequestMapping(value = "initGoods", method = RequestMethod.GET) public String initGoods(Model model, HttpSession session, GoodsForm goodsForm, Device device) throws UnsupportedEncodingException { log.info("商品列表初始化"); List<GoodsForm> commodityType = goodsService.getType(); model.addAttribute("commodityType", goodsService.getType()); if(goodsForm.getCommodityTypeId()==null) { goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId()); model.addAttribute("list", goodsService.getTypeList(goodsForm)); model.addAttribute("goodsForm", goodsForm); } else {model.addAttribute("goodsForm", goodsForm); model.addAttribute("list", goodsService.getTypeList(goodsForm)); } UVO uvo = (UVO)session.getAttribute("UVO"); if (uvo == null) { uvo = new UVO(); session.setAttribute("UVO", uvo); } model.addAttribute("orderTypeId", 1); CartForm cartForm = new CartForm(); cartForm.setGuestId(uvo.getGuestId()); model.addAttribute("cartList", cartService.searchCartList(cartForm)); if(device.isNormal()) { return "shop/list"; } else { return "mobile/list"; } }
五、GoodsService.javaapp
public List<GoodsForm> searchGoodsListLimit(GoodsForm frm) { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListLimit", frm,0,6); return result; } public List<GoodsForm> getType() { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectType", null); return result; } public List<GoodsForm> getTypeList(GoodsForm goodsForm) { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectTypeList", goodsForm); return result; }
六、GoodsSqlMap.xmlide
<select id="selectGoodsListLimit" parameterClass="cn.agriculture.web.form.GoodsForm" resultClass="cn.agriculture.web.form.GoodsForm"> SELECT commodity.commodity_id as commodityId, commodity.type as type, commodity_type.commodity_type_id as commodityTypeId, commodity_type.commodity_type_name as commodityTypeName, supplier.supplier_name as supplierName, brand.brand_name as brandName, commodity.commodity_name as commodityName, commodity.weight as weight, commodity.is_gift as isGift, commodity.specifications as specifications, commodity.unit as unit, commodity.benchmark_price as benchmarkPrice, commodity.guide_price as guidePrice, commodity.retail_price as retailPrice, commodity.competition_level as competitionLevel, commodity.note as note, commodity.update_time as updateTime, commodity.update_user as updateUser, commodity.picture_id as pictureId, stock.stock as stock FROM commodity, supplier, brand, stock,commodity_type WHERE commodity.commodity_id = stock.commodity_id AND commodity.supplier_id = supplier.supplier_id AND commodity.brand_id = brand.brand_id AND commodity.type = commodity_type.commodity_type_id AND commodity_type.commodity_type_id=#commodityTypeId# </select> <select id="selectType" resultClass="cn.agriculture.web.form.GoodsForm"> SELECT commodity_type_name as commodityTypeName, commodity_type_id as commodityTypeId FROM commodity_type </select> <select id="selectTypeList" parameterClass="cn.agriculture.web.form.GoodsForm" resultClass="cn.agriculture.web.form.GoodsForm"> SELECT commodity.commodity_id as commodityId, commodity.type as type, commodity_type.commodity_type_id as commodityTypeId, commodity_type.commodity_type_name as commodityTypeName, supplier.supplier_name as supplierName, brand.brand_name as brandName, commodity.commodity_name as commodityName, commodity.weight as weight, commodity.is_gift as isGift, commodity.specifications as specifications, commodity.unit as unit, commodity.benchmark_price as benchmarkPrice, commodity.guide_price as guidePrice, commodity.retail_price as retailPrice, commodity.competition_level as competitionLevel, commodity.note as note, commodity.update_time as updateTime, commodity.update_user as updateUser, commodity.picture_id as pictureId, stock.stock as stock FROM commodity, supplier, brand, stock,commodity_type WHERE commodity.commodity_id = stock.commodity_id AND commodity.supplier_id = supplier.supplier_id AND commodity.brand_id = brand.brand_id AND commodity.type = commodity_type.commodity_type_id AND commodity.type = #commodityTypeId# </select>
2、list頁面各種排序(升降序轉換)ui
一、list.html中spa
<div class="btn-group btn-group-sm btn-sort col-sm-6" role="group" > <!-- 默認排序 --> <a th:href="@{initGoods(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==1?'btn btn-default btn-danger':'btn btn-default'"> 默 認 </a> <!-- 人氣降序 (庫存)--> <a th:href="@{initGoodsByPopularDesc(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==3?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}!=2"> 人 氣<i></i> </a> <!-- 人氣升序 (庫存)--> <a th:href="@{initGoodsByPopular(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==2?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}==2"> 人 氣<i class="up"></i> </a> <!-- 價格降序 --> <a th:href="@{initGoodsByPriceDesc(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==5?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}!=4"> 價 格<i></i> </a> <!-- 價格升序 --> <a th:href="@{initGoodsByPrice(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==4?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}==4"> 價 格<i class="up"></i> </a> </div>
二、GoodsControl.javacode
initGoods initGoodsByPopularDesc initGoodsByPopular initGoodsByPriceDesc initGoodsByPrice
@RequestMapping(value = "initGoodsByPopularDesc", method = RequestMethod.GET) public String initGoodsByPopularDesc(Model model, HttpSession session, GoodsForm goodsForm, Device device) { log.info("以人氣爲條件商品列表初始化"); List<GoodsForm> commodityType = goodsService.getType(); model.addAttribute("commodityType", goodsService.getType()); if(goodsForm.getCommodityTypeId()==null) { goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId()); model.addAttribute("list", goodsService.getTypeList(goodsForm)); model.addAttribute("goodsForm", goodsForm); } else {model.addAttribute("goodsForm", goodsForm); model.addAttribute("list", goodsService.getTypeList(goodsForm)); } UVO uvo = (UVO)session.getAttribute("UVO"); if (uvo == null) { uvo = new UVO(); session.setAttribute("UVO", uvo); } model.addAttribute("list", goodsService.searchGoodsListByPopularDesc(goodsForm)); model.addAttribute("orderTypeId", 2); CartForm cartForm = new CartForm(); cartForm.setGuestId(uvo.getGuestId()); model.addAttribute("cartList", cartService.searchCartList(cartForm)); if(device.isNormal()) { return "shop/list"; } else { return "mobile/list"; } }
其中
model.addAttribute("list", goodsService.searchGoodsListByPopularDesc(goodsForm)); model.addAttribute("orderTypeId", 2);
換爲
model.addAttribute("list", goodsService.searchGoodsListByPopular(goodsForm)); model.addAttribute("orderTypeId", 3);
model.addAttribute("list", goodsService.searchGoodsListByPriceDesc(goodsForm)); model.addAttribute("orderTypeId", 4);
model.addAttribute("list", goodsService.searchGoodsListByPrice(goodsForm)); model.addAttribute("orderTypeId", 5);
三、GoodsService.java
public List<GoodsForm> searchGoodsListByPriceDesc(GoodsForm frm) { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPriceDesc", frm); return result; } public List<GoodsForm> searchGoodsListByPrice(GoodsForm frm) { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPrice", frm); return result; } public List<GoodsForm> searchGoodsListByPopularDesc(GoodsForm frm) { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPopularDesc", frm); return result; } public List<GoodsForm> searchGoodsListByPopular(GoodsForm frm) { List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPopular", frm); return result; }
四、GoodsSqlMap.xml
<select id="selectGoodsListLimit" parameterClass="cn.agriculture.web.form.GoodsForm" resultClass="cn.agriculture.web.form.GoodsForm"> SELECT commodity.commodity_id as commodityId, commodity.type as type, commodity_type.commodity_type_id as commodityTypeId, commodity_type.commodity_type_name as commodityTypeName, supplier.supplier_name as supplierName, brand.brand_name as brandName, commodity.commodity_name as commodityName, commodity.weight as weight, commodity.is_gift as isGift, commodity.specifications as specifications, commodity.unit as unit, commodity.benchmark_price as benchmarkPrice, commodity.guide_price as guidePrice, commodity.retail_price as retailPrice, commodity.competition_level as competitionLevel, commodity.note as note, commodity.update_time as updateTime, commodity.update_user as updateUser, commodity.picture_id as pictureId, stock.stock as stock FROM commodity, supplier, brand, stock,commodity_type WHERE commodity.commodity_id = stock.commodity_id AND commodity.supplier_id = supplier.supplier_id AND commodity.brand_id = brand.brand_id AND commodity.type = commodity_type.commodity_type_id AND commodity_type.commodity_type_id=#commodityTypeId# </select> 添加排序(默認爲升序) ORDER BY cast(stock.stock as signed) DESC ORDER BY cast(commodity.retail_price as signed) DESC