1、前台系統搭建
a) taotao-rest:服務層沒有jsp頁面
b) taotao-portal:門戶,表現層。
2、首頁分類列表展示
a) 使用ajax呼叫服務層的服務。
b) 跨域問題。使用jsonp解決。
今天內容
首頁大廣告位的實現。
1、cms系統的實現
2、發布服務
3、呼叫服務展示內容
首頁的內容需要動態管理,需要後台管理功能。
抽取首頁展示內容的共性:
1、有一張
2、有乙個連線
3、有乙個標題
4、有鏈結的提示
5、**
需要把內容進行分類,分類應該是乙個樹形結構。
在展示首頁時,可以根據分類取內容資訊,把內容展示到頁面。
在後台管理內容及內容分類的系統就叫做cms系統。
先實現內容的分類管理再實現內容管理。
3.1.1.1 需求分析
初始化樹形檢視的url:/content/category/list
引數是id,當前節點id屬性,應該根據此id查詢子節點列表。
返回值:包含id、text、state三個屬性的json資料列表
3.1.1.2 dao層
表結構:
sql語句:
根據parentid查詢節點列表
select * from `tb_content_category` whereparent_id = 30;
單錶查詢可以實現逆向工程生成的**。
3.1.1.3 service層
功能:接收parentid。根據parentid查詢節點列表,返回返回乙個easyui非同步tree要求的節點列表。每個節點包含三個屬性id、text、state三個屬性。可以使用eutreenode。
引數:id
返回值:list
@service
public
classcontentcategoryserviceimplimplementscontentcategoryservice
returnresultlist; }
3.1.1.4 controller
接收頁面傳遞過來的parentid,根據parentid查詢節點列表。返回list。需要響應json資料。
@controller
public
classcontentcategorycontroller
3.1.2.1 需求分析
請求的url:/content/category/create
引數:1、parentid父節點id
2、name:當前節點的名稱
返回值:taotaoresult。其中包含節點pojo物件。
3.1.2.2 dao層
可以使用逆向工程生成的**
3.1.2.3 service層
功能:接收兩個引數parentid父節點id、name:當前節點的名稱。向tb_content_category表中新增一條記錄。返回taotaoresult包含記錄的pojo物件。
需要返回主鍵資訊:
@override
publictaotaoresult insertcontentcategory(longparentid, string name)
//返回結果
returntaotaoresult.ok(
contentcategory
);
3.1.2.4 controller層
接收兩個引數parentid、name。呼叫service新增記錄。返回taotaoresult。應該返回json資料。
@responsebody
publictaotaoresult createcontentcategory(long parentid, string name)
接收表單中的內容,使用pojo接收。要求pojo的屬性要和表單中的name一致。呼叫service插入內容資訊。返回taotaoresult。json格式的資料。
@controller
public
classcontentcontroller
前端系統獲取後端系統提供的介面,如何獲取?
jsonp跨域請求
需要當首頁載入完畢後,大廣告位就應該顯示。沒有觸發事件。不是太合適。
優點:不需要二次請求,頁面直接載入內容資料。減少門戶系統的壓力。
缺點:需要延遲載入。不利於seo優化。
優點:有利於seo優化。可以在taotao-portal中對資料進行加工。
缺點:系統直接需要呼叫服務查詢內容資訊。多了一次http請求。
系統直接服務的呼叫,需要使用httpclient來實現。taotao-portal和taotao-rest是在同乙個區域網內部。速度非常快,呼叫時間可以忽略不計。
展示首頁內容功能,使用方案二實現。
根據內容的分類id查詢內容列表,從tb_content表中查詢。服務是乙個restful形式的服務。使用http協議傳遞json格式的資料。
從tb_content表中查詢,根據內容分類id查詢。是單錶查詢。可以使用逆向工程生成的**。
接收內容分類id,根據分類id查詢分類列表。返回乙個內容pojo列表。
引數:分類id
返回值:pojo列表
@service
public
classcontentserviceimplimplementscontentservice
發布服務。接收查詢引數。restful風格內容分類id應該從url中取。
/rest/content/list/
從url中取內容分類id,呼叫service查詢內容列表。返回內容列表。返回乙個json格式的資料。可以使用taotaoresult包裝此列表。
@controller
public
classcontentcontrollercatch(exception e)
} 需要把httpclient的jar包新增到工程中。只需要在工程中新增httpclient的依賴。
4.4.3.1 使用httpclient執行get請求
@test
public
voiddoget()throwsexception ")
privatestring rest_base_url;
@value("$")
privatestring rest_index_ad_url;
@override
publicstring getcontentlist()
returnjsonutils.objecttojson(
resultlist
); }catch(exception e)
return
null;
}展示首頁返回乙個邏輯檢視,需要把首頁大廣告位的json資料傳遞給jsp。
publicstring showindex(model
model) {
string adjson = contentservice.getcontentlist();
model.addattribute("ad1", adjson);
return"index";
第六天 風氣
第六天 風氣 答 人有了,就得定規矩,否則就是一幫烏合之眾,而不是團隊。1必須朝九晚五。嚴格控制員工手裡有辦公室鑰匙。下班必須準時鎖門,員工準時離開。斷公司外網。要加班必須上級主管簽字,更不准在辦公室留宿,洗澡。這一條很重要,不要讓程式設計師活得像個浪子,精神恍惚,口中神叨,鬍子拉碴,這都是浮動工作...
開課第六天
今天是開課第六天,老師上午沒有講課,講了一上午的題,下午又講了新知識,如下 1 順序結構 從上到下順序進行。2 分支結構 if boolean表示式 else switch 值 case 值 break case 值 break switch 執行流程,switch的值和case的值一一比較,如果一...
第六天學習
變數的作用域 區域性變數 在函式內部定義的變數,這個變數只能在函式內部使用,在全域性當中不能使用。使用就報錯了。全域性變數 在函式外部定義的變數,這個變數可以在全域性使用。但是我們一般不推薦使用全域性變數 因為可能會意外的修改掉變數的值。迫不得已不要用全域性變數 衝突處理原則 就近原則。而不是從上到...