在上一篇中我們進行了控制器方法的編寫幔烛,只是簡單的配置了下視圖渲染急膀。這一篇中我會介紹有關jsp模型的數據烛缔。
1視圖解析
我們在Spring中通過控制器來處理邏輯并且維護和更新視圖。那么我們是怎么確定渲染哪一個視圖的呢?這里就用到的Spring的視圖解析器了驾中。在上一篇中我們所用到了InternalResourceViewResolver的視圖解析器。在這里我們在了解一下具體是怎么操作的模聋。首先在SpringMvc中我們定義了一個ViewResolver的接口
當給方法resolveViewName()傳入參數時會返回一個view實例肩民。
view的任務就是把需要渲染的內容放到response中進而展現到用戶的瀏覽器中。
當然在Spring中還有很多視圖解析器链方,比如freemarker視圖解析等等持痰。因為大部分開發(fā)還是用的jsp模板我們還是用的是InternalResourceViewResolver視圖解析。當然不排除其他的技術祟蚀。
我們在最后還會介紹下一種新的技術Thymeleaf ,因為這個模板的產出最像html文件工窍,而不需要我們操作java代碼。
在Spring中提供了兩種支持jsp視圖的方式:
在使用配置jsp邏輯視圖名稱的時候我們需要配置好前綴與后綴前酿。下面分別為Class中配置與xml文件中配置
這里我們使用了別名p來標識 患雏,需要在xml文件引入別名“瘴或者自己改為標簽也可以的淹仑。在我們通常使用的jsp當中,我們都需要使用jstl來獲取從后臺傳輸過來的值,那么我們在視圖解析器中應該這樣配置
在配置中增加jstl解析類幫助解析jstl內容匀借。
2 使用jsp庫
? ?1)表單數據
Spring的表單綁定jsp標準庫包含了14個標簽颜阐。他們都是用來渲染html中的標簽,區(qū)別是相對于html標簽吓肋,這些jsp標簽會綁定一個對象凳怨,根據屬性值填充。并且標簽庫中還包含了為用戶展示錯誤的標簽是鬼,將信息渲染到html中猿棉。
為了使用jsp的表單綁定庫,首先在頁面需要聲明一下
這些標簽其實跟Html中的作用基本上是類似的屑咳。最終都會渲染成對應的標簽萨赁。
因為在form表單中我們需要將使用commandName來綁定模型,并且在Controller中增加模型的數據兆龙。
在控制器中我們創(chuàng)建了一個模型杖爽,那么我們就能在表單中得到這個模型,并且表單下的屬性標簽會根據path里面的屬性去拿到我們模型中的數據紫皇。
前面說到慰安,我們可以使用<sf:errors>來給用戶展現錯誤的信息,
從代碼中我們也能看到它的path也設置成跟上面的path是一樣的這樣如果校驗有錯誤的情況下聪铺,就可以直接展示在頁面上了化焕。為了顯示明顯,我們可以在errors中增加cssClass屬性铃剔。其他屬性標簽語氣使用類似撒桨,就不介紹了。
3Spring中通用的標簽庫
在使用這些標簽我們需要首先導入
首先我們會使用<s:message> ?
我們需要用信息源來渲染信息键兜,在這里比較推薦使用ReloadableResourceBundleMessageSource這個接口凤类,樣例如下
在這個樣例中直接設置basename屬性,可以根據類路徑或者文件系統(tǒng)普气,或者在web應用的根路徑下查找屬性文件谜疤。并且基礎信息會被命名為message.