SpringMVC 資料輸出 四

2021-10-02 03:35:52 字數 3495 閱讀 9684

/**

* springmvc除過在方法上傳入原生的request和session外還能怎麼樣把資料帶給頁面

* * 1)、可以在方法處傳入map、或者model或者modelmap。

* 給這些引數裡面儲存的所有資料都會放在請求域中。可以在頁面獲取

* 關係:

* map,model,modelmap:最終都是bindingawaremodelmap在工作;

* 相當於給bindingawaremodelmap中儲存的東西都會被放在請求域中;

* * map(inte***ce(jdk)) model(inte***ce(spring))

* || //

* || //

* \/ //

* modelmap(clas) //

* \\ //

* \\ //

* extendedmodelmap

* ||

* \/

* bindingawaremodelmap

* * 2)、方法的返回值可以變為modelandview型別;

* 既包含檢視資訊(頁面位址)也包含模型資料(給頁面帶的資料);

* 而且資料是放在請求域中;

*

* * @author lfy

* */

@controller

public

class

outputcontroller

/** * model:乙個介面

* @param model

* @return

*/("/handle02"

)public string handle02

(model model)

("/handle03"

)public string handle03

(modelmap modelmap)

/** * 返回值是modelandview;可以為頁面攜帶資料

* @return

*/("/handle04"

)public modelandview handle04()

}

1)頁面:

2)、dao:全欄位更新。沒帶的字段會在資料庫中更新為null;

/**

* 測試modelattribute註解;

* 使用場景:書城的圖書修改為例;

* 1)頁面端;

* 顯示要修改的圖書的資訊,圖書的所有欄位都在

* 2)servlet收到修改請求,呼叫dao;

* string sql="update bs_book set title=?,

* author=?,price=?,

* sales=?,stock=?,img_path=?

* where id=?";

* 3)實際場景?

* 並不是全欄位修改;只會修改部分字段,以修改使用者資訊為例;

* username password address;

* 1)、不修改的字段可以在頁面進行展示但是不要提供修改輸入框;

* 2)、為了簡單,controller直接在引數位置來寫book物件

* 3)、springmvc為我們自動封裝book;(沒有帶的值是null)

* 4)、如果接下來呼叫了乙個全欄位更新的dao操作;會將其他的字段可能變為null;

* sql = "update bs_book set"

* if(book.getbookname())

* if(book.getprice())

* * 4)、如何能保證全欄位更新的時候,只更新了頁面攜帶的資料;

* 1)、修改dao;代價大?

* 2)、book物件是如何封裝的?

* 1)、springmvc建立乙個book物件,每個屬性都有預設值,bookname就是null;

* 1、讓springmvc別建立book物件,直接從資料庫中先取出乙個id=100的book物件的資訊

* 2、book [id=100, bookname=西遊記, author=張三, stock=12, sales=32, price=98.98]

* * 2)、將請求中所有與book對應的屬性一一設定過來;

* 3、使用剛才從資料庫取出的book物件,給它 的裡面設定值;(請求引數帶了哪些值就覆蓋之前的值)

* 4、帶了的字段就改為攜帶的值,沒帶的字段就保持之前的值

* 3)、呼叫全欄位更新就有問題;

* 5、將之前從資料庫中查到的物件,並且封裝了請求引數的物件。進行儲存;

* * @author lfy

*/@controller

public

class

modelattributetestcontroller

/** * 1)、springmvc要封裝請求引數的book物件不應該是自己new出來的。

* 而應該是【從資料庫中】拿到的準備好的物件

* 2)、再來使用這個物件封裝請求引數

** @modelattribute:

* 引數:取出剛才儲存的資料

* 方法位置:這個方法就會提前於目標方法先執行;

* 1)我們可以在這裡提前查出資料庫中圖書的資訊

* 2)將這個圖書資訊儲存起來(方便下乙個方法還能使用)

** 引數的map:bindingawaremodelmap

*/@modelattribute

public

void

hahamymodelattribute

(map

map)

}

SpringMVC(四)SpringMVC檔案上傳

method 屬性取值必須是 post 提供乙個檔案選擇域 input type file 名稱 作用string getoriginalfillename 返回客戶端提交的原始檔名稱 void transferto file destination 將上傳檔案儲存到目標目錄下 string get...

SpringMVC複習(四)響應資料傳出

springmvc除過在方法上傳入原生的request和session外還能怎麼樣把資料帶給頁面 繼承關係中map 或者model或者modelmap 後端 controller public class outputcontroller model 乙個介面 param model return ...

Spring MVC學習筆記(四)

pointcut execution concert.performance.perform 定義命名的切點,為 pointcut註解設定的值是乙個切點表示式,通過在performance方法上新增 pointcut註解,我們實際上擴充套件了切點表示式語言,這樣就可以在任何的切點表達中使用perfo...