1. 程式人生 > >淘淘商城系列——實現商品詳情頁面展示

淘淘商城系列——實現商品詳情頁面展示

我相信大家通過上文的學習已經搭建好了商品詳情頁面展示工程,本文我將帶領大家一起實現商品詳情頁面展示。
首先我們來看一下商品詳情頁面程式碼,可以看到商品一般屬性在TbItem實體類中都是存在的,只是圖片需要特殊處理,因為TbItem實體類中圖片的欄位儲存的是以”,”分隔的圖片地址的字串,因此要將字串轉換成陣列才行,而TbItem實體類中是沒有images屬性的,這就需要我們再新建一個pojo類,該類要繼承自TbItem類,只是處理一下圖片即可。商品描述是在實體類TbItemDesc當中。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
那麼我們把該pojo類放到什麼工程下呢?比較合理的位置是放到taotao-item-web工程當中,如下圖所示。
這裡寫圖片描述


為了大家方便複製,現將Item類的程式碼貼出。

public class Item extends TbItem {

    public String[] getImages() {
        String image = this.getImage();
        if (image != null && !"".equals(image)) {
            return image.split(",");
        }
        return null;
    }

    public Item() {

    }

    public
Item(TbItem tbItem) { this.setBarcode(tbItem.getBarcode()); this.setCid(tbItem.getCid()); this.setCreated(tbItem.getCreated()); this.setId(tbItem.getId()); this.setImage(tbItem.getImage()); this.setNum(tbItem.getNum()); this.setPrice(tbItem.getPrice()); this
.setSellPoint(tbItem.getSellPoint()); this.setStatus(tbItem.getStatus()); this.setTitle(tbItem.getTitle()); this.setUpdated(tbItem.getUpdated()); } }

下面我們就來編寫Dao層的程式碼。為了展示商品詳情頁面,我們勢必要查詢tb_item,tb_item_desc這兩張表。現在考慮一個問題,是根據一個商品id把兩張表都查出來呢?還是說根據一個商品id調一次服務查詢商品基本資訊,再調一個服務查詢商品描述呢?其實我感覺分開會好一點,分開的話,我要是查詢商品基本資訊,有的時候就根本不需要展示商品描述,只需要展示商品的基本資訊就夠了,這樣的話,我只要調個服務,根據商品id查詢一下商品基本資訊就夠了。如果我們要是取商品描述的話,可再調另外一個服務,根據商品id取商品描述,這樣我們的靈活度會更高一點。這時候,表現層只需要調兩個服務就可以得到相應的資料了。
分析完了之後,我們來編寫Dao層的程式碼,由於商品基本資訊和商品描述在不同的表中,我們寫兩個方法,分別獲取商品基本資訊和商品描述,其中獲取商品基本資訊的方法已經寫好了(下圖中的getItemById方法),現在我們要做的便是再寫一個獲取商品描述的方法(下圖中的getItemDesc方法)。
這裡寫圖片描述
接下來就來編寫Server層的程式碼,在ItemServiceImpl實現類中實現getItemDesc方法,如下圖所示。
這裡寫圖片描述
之所以可以通過主鍵來查詢商品描述,是因為在商品描述表中也把商品ID作為了主鍵,如下圖所示。
這裡寫圖片描述
接著我們需要在taotao-item-web工程中引用itemService的dubbo服務,如下圖所示。
這裡寫圖片描述
最後我們來編寫表現層的程式碼。在taotao-item-web工程下的com.taotao.item.controller中新建一個ItemController類,如下圖所示。
這裡寫圖片描述
為了大家方便複製,現將ItemController類的程式碼貼出。

/**
 * 商品詳情頁面展示處理
 * <p>Title: ItemController</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.cn</p> 
 * @version 1.0
 */
@Controller
public class ItemController {

    @Autowired
    private ItemService itemService;

    @RequestMapping("/item/{itemId}")
    public String showItemInfo(@PathVariable Long itemId, Model model) {
        // 根據商品id查詢商品基本資訊
        TbItem tbItem = itemService.getItemById(itemId);
        // 使用TbItem來初始化Item物件
        Item item = new Item(tbItem);
        // 根據商品id查詢商品描述
        TbItemDesc tbItemDesc = itemService.getItemDesc(itemId);
        // 傳遞給頁面
        model.addAttribute("item", item);
        model.addAttribute("itemDesc", tbItemDesc);
        // 返回邏輯檢視
        return "item";
    }

}

寫完了taotao-item-web工程中的程式碼之後,現在我們依次啟動taotao-manager、taotao-content、taotao-search、taotao-portal-web、taotao-search-web工程,在啟動taotao-item-web工程之前,由於taotao-manager-interface工程做了修改,因此需要重新安裝到本地Maven倉庫,至於怎麼安裝就不浪費口舌了。
成功啟動完6個工程之後,我們訪問淘淘商城首頁,搜尋”情懷”,如下圖所示,回車。
這裡寫圖片描述
搜尋到的結果如下圖所示。我們點選搜尋到的那個商品。
這裡寫圖片描述
詳情如下圖所示,發現正常查詢到商品詳情了!!
這裡寫圖片描述

相關推薦

商城系列——實現商品詳情頁面展示

我相信大家通過上文的學習已經搭建好了商品詳情頁面展示工程,本文我將帶領大家一起實現商品詳情頁面展示。 首先我們來看一下商品詳情頁面程式碼,可以看到商品一般屬性在TbItem實體類中都是存在的,只是圖片需要特殊處理,因為TbItem實體類中圖片的欄位儲存的是以”

帶你逐步深入瞭解SSM框架——商城專案之商品詳情頁面實現

1.  課程計劃 l  商品詳情頁實現    1、商品查詢服務事項       2、商品詳情展示    3、新增快取 2.  實現商品詳情頁功能 2.1. 功能分析 1、Taotao-portal

商品詳情頁面展示——商城(二十二)

商品資訊服務釋出 需求 提供三個介面,分別提供商品基本資訊、商品描述、商品引數,並設定快取時間為1天。 在taotao-rest中開發。 商品基本資訊: 請求url:/item/base/{itemId} 請求引數:url中的商品id 響應

餓了麼專案---13、模組化程式設計,實現商品詳情頁面

import BScroll from 'better-scroll'; import cartcontrol from '../cartcontrol/cartcontrol.vue'; import ratingSelecte from '../ratingSelecte/ratingSelecte.v

Android_實現商品詳情展示頁及佈局

,,記得要匯入依賴及許可權 商品詳情頁的model層 public class RecyclerDetailsModel { //自己定義的方法 public void receive(String pid, final IRecyc

商城25_商品詳情頁面實現02_商品詳情

一、展示商品詳情 1. dao層 2. Service層 3. serviceImpl /** * 查詢商品詳情 * @param itemId * @return */ @Override public TbItemDesc getItemDescB

商城25_商品詳情頁面實現01_查詢商品

一、思想 建立一個taotao-item-web工程,展示商品的詳情。 點選商品的圖片,開啟商品詳情頁面 商品基本資訊 延遲載入商品詳情。延遲一秒載入使用ajax 商品的規格引數。按需載入,當用戶點選商品規格引數tab頁,載入ajax。

商城系列——商品詳情頁面靜態化方案分析

我們要做到網頁靜態化,那麼就需要有一套方案來操作。 首先我們來考慮一下輸出檔案的名稱(即靜態網頁的名稱),要知道每個商品的詳情頁面都是不一樣的,因此我們最好把商品的ID加”.html”作為靜態網頁的名稱。 接著來考慮一下輸出檔案的路徑,即生成的靜態網頁應該放

商城系列——商品詳情頁面對加入購物車進行改造

在上文中,我就講過,關於購物車模組,京東和淘寶並不一樣,京東允許使用者在沒有登入的情況下就新增商品進購物車,而且加到購物車裡面的商品可以一直儲存著。這其實是把購物車資訊寫入到了Cookie中,如果清空了Cookie也就清空購物車了。把購物車資訊寫入到了Cooki

day76_商城專案_09_商品詳情頁動態展示實現(jsp+redis) + FreeMarker模板引擎入門 + 商品詳情頁靜態化實現(Win版本的nginx作http伺服器)_匠心筆記

淘淘商城專案_09 1、商品詳情頁面展示,動態展示(jsp + redis) 1.1、工程搭建 1.1.1、pom檔案 1.1.2、框架整合 1.1.3、springmvc.xml

學習商城第九十七課(商品詳情頁面對加入購物車進行改造)

        我們訪問淘淘商城首頁(前提是啟動了所有的服務及工程,雖然有個別工程用不上,不過也沒關係),在搜尋框中輸入要搜尋的商品,我以前新增過"金立M2017"這款手機,我就搜尋它。          搜尋到的結果頁面如下圖所示。           我們再點選這款

仿商品詳情頁面Android

1、需求: 要實現一個類似淘寶、京東的商品詳情頁面。首先是在看一些前輩的思路,檢視之後,發現博主qifengdeqingchen的文章不錯,然後去下載下來檢視demo。 2、查閱資料 來看看前輩的思路圖。使用兩個scrollView,兩個scr

商城系列——匯入商品資料到索引庫

上文我們把商品資料匯入到索引庫中的Service層程式碼編寫完了,本文我們將再來把商品資料匯入到索引庫中的表現層程式碼編寫完,從而實現從資料庫中匯入商品資料到索引庫的功能。 我們是要在表現層中調用搜索服務的匯入資料功能的,但應在哪個表現層呼叫呢?很顯然應該在後

微信小程式——點選商品分類跳轉到該商品商品詳情頁面(已實現

        首先,我不得不感慨下,慕課網上“7七月”老師的課真的很強大,此處放連結https://coding.imooc.com/learn/list/75.html。        我只是學習到了一半就開

【濤濤商城商品詳情頁面方案二:頁面靜態化

1、什麼是freemarker FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文字輸出。FreeMarker與Web容器無關,即在Web執行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或J

微信小程式視訊層級過高問題與商品詳情相簿展示效果

1.效果圖 2.html <view class="banner" > <view class='current_num'>{{current}}/{{imgNum}}</view> <swiper circular duration=

商品詳情頁面實現點選收藏,取消收藏

html程式碼: <!-- 收藏商品 --> {if condition="$is_member_fav_goods == 0"} <a href="javascript:;" class="new-btn buy-cart fav" oncl

【Python web 開發】viewset 實現商品詳情頁的介面

我們如何來完成商品詳情頁的介面呢? 首先要配置一個商品詳情的url 按照我們正常的介面配法 ,應該是後面要加一個id 的,為什麼這裡沒有加id 呢? ,應該是rooter  register 的作用吧,等我在學習一遍基礎再來回答? 那麼我們再來寫viewset Mixin.Retriev

原生js實現圖片詳情頁面放大鏡

最近的網站專案需要實現這個放大鏡,在網上也下載了一些實現了的程式碼,不過感覺比較笨重,就自己寫了一次,實現了,需要的朋友可以拿去用; 以下是html部分: <!DOCTYPE html> <html> <head> <met

電商專案day12(商品詳情頁面靜態化&freemarker的入門)

今日目標: 掌握頁面靜態化技術 完成入門demo 熟練使用常用的demo 商品詳情頁面的展示 靜態頁面動態效果實現 一.freemarker入門Demo 1.首先為什麼要使用freemarker技術? FreeMarker 是一個用 Java 語言編寫的模板引擎,