1. 程式人生 > 實用技巧 >MVC筆記整理

MVC筆記整理

MVC筆記整理

##SpringMVC筆記整理 MVC部分元件: 1,前端控制器(dispatcherServlet) 2,處理器對映器(handlerMapping), 3,處理器(handler), 4,檢視解析器(view Resolver), 5,檢視(view) 其執行過程大致為:

在這裡插入圖片描述




環境搭建: web.xml:用spring提供的dispatcherServelt類配置servlet xml配置檔案:1,註解掃描-------context:component-scan 2,檢視解析器------bean物件,其類為InternalResourceViewResolver(其用將返回的字串轉換成相應的檔名,並跳轉 3,開啟springMVC框架註解的支援---------------mvc:annotation-driven(配置該標籤,將自動載入處理器介面卡和處理器對映器) 請求引數的繫結:
1,請求引數的繫結說明: 1,繫結機制 1,表單提交的資料都是k=v格式的,如usename=haha&password=123 2,SpringMVC的引數繫結過程是把表單提交的請求引數,作為控制中方法的引數進行繫結的 3,要求:提交表單的name和引數名稱是相同的 2,支援的資料型別 1,基本資料型別和字串型別 2,實體型別(javaBean) 3,集合資料型別(list,map集合等) 2,基本資料型別和字串型別 1,提交表單的name和引數的名稱是相同的 2,區分大小寫 3,實體型別(javaBean)
1,提交表單的name和javaBean中的屬性名稱須一致(注意方法的形參需是對應的實體型別) 2,如果一個javaBean類中包含其他引用型別,那麼表單的name屬性需要編寫成:物件.屬性例如:address.name(其中address是所包含的引用型別的變數名) 4,給集合屬性資料封裝 1,如果javaBean包含集合型別,那麼表單的name屬性需要編寫成:集合型別[下標].屬性,例如:list[0].name(MVC會將name屬性封裝到相應的JavaBean物件,然後將物件新增到list中) 註解: 1,@RequestMapping
( 注意以下四個屬性只要出現2個或2個以上時,他們之間關係是與的關係) 作用:用於建立請求URL和處理請求方法之間的對應關係, 位置:可放在類和方法上,區別為一級路徑和二級路徑 屬性: 1,value:用於指定請求的URL和path屬性一致 2,method:用於指定騎牛的方式,如:method={RequestMethod.post},則只能接受post請求方式的 3,params:用於限制請求引數的條件,他支援簡單的表示式,要求請求引數的key和value必須和配置一致 如:params={"accountName"},表明請求引數必須有accountName params={"money!100"}表明其你去引數中的money不能是100 4,headers:用於指定限制請求訊息頭的條件,即傳送訊息中必須包含該請求頭,和method用法類似 2,@RequestParams(形參前) 作用:把請求中指定名稱的引數給控制器中的引數賦值(常用於解決表單與形參名稱不一致的情況) 屬性: 1,value:請求引數中的名稱,name屬性作用和value一致 2,required:請求引數中是否必須提供此引數,預設值為true,表示必須提供,如果不提供則報錯 3,@RequestBody(形參前) 作用:用於獲取請求體內容,直接使用得到的是key=value&key=value....結構的資料 屬性: 1,required:是否必須有請求體,預設值是true,當取值為true時,get請求方式會報錯,如果取false,get請求得到的是null。 4,@PathVarible(形參前) 作用:用於繫結URL的佔位符,例如:請求URL中/delete/{id},這個id就是URL的佔位符,是rest風格URL的一個重要標誌(個人看法:這樣寫有利於隱藏屬性,具有一定安全性) 屬性: 1,value:用於指定URL中佔位符名稱 2,required:是否必須提供佔位符 5,RequestHeader(形參前) 作用:用於獲取請求訊息頭(注:實際開發中很少用到) 屬性: 1,value:提供訊息頭的名稱 2,required:是否必須有此訊息頭 6,CookieValue(形參前) 作用:用於指定cookie名稱的值傳入控制器方法引數(注:實際開發中很少用到) 屬性: 1,value:指定cookie的名稱 2,required,是否必須有此cookie 7,@ModelAttribute 位置:方法,引數 作用:出現在方法上,表示當前方法會在控制器的方法執行之前執行,它可以修飾在沒有返回值的方法,也可以修飾有具體返回值的方法。 出現在引數上,獲取指定資料給引數賦值 屬性: 1,value:用於獲取資料的key,key可以是pojo的屬性名稱,也可以是map結構的key 應用場景:當表單提交資料不是完整的實體類資料時,保證沒有提交資料的欄位使用資料庫物件原來的資料 8,@SessionAttribute(可以和model配合) 位置:只能作用於類上 作用:用於多次執行控制器方法間的引數共享 屬性: 1,value:用於指定存入的屬性名稱 2,type:用於指定存入的資料型別 注意後臺方法void可能會報錯,因為MVC預設會返回方法名稱作為檔名,但若是沒有則會報錯 (剩下的一些用法和配置就沒整理了,如檔案上傳,攔截器,異常處理器等)