淘淘商城系列——實現商品詳情頁面展示
我相信大家通過上文的學習已經搭建好了商品詳情頁面展示工程,本文我將帶領大家一起實現商品詳情頁面展示。
首先我們來看一下商品詳情頁面程式碼,可以看到商品一般屬性在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 語言編寫的模板引擎,