Spring MVC學習(三)

 今天機器一直處於假死狀態,太慢了。沒辦法工作了,整理下硬盤然後充實下內容好了!

昨天寫了controller的配置,現在來看看相關的業務對象和VM頁面。老樣子,先寫下配置對象代碼。

大家可以看到這裏在屬性上使用了@NotBlank註解,表示該值不能爲空,當然還有很多其他的註解,這裏就不一一介紹了,可以去google一下。通過這些註解,validator纔可以對屬性進行相關服務器校驗。那對象屬性怎麼和頁面進行綁定的呢,這裏使用的是velocity模板,那麼我們的spring.vm裏面的宏就閃亮登場了。

VM頁面中FORM如下:

我們以<td>&nbsp;#springFormInput("userVO.loginName" "οnblur='checkLogin();'")#springShowErrors("" "")</td>這段爲例進行說明。

#springFormInput可以看到這個宏,它的作用是在velocity在最後渲染時,生成一個input type=text 的表單域,通過這個宏我們就可以將表單對象與業務對象中的屬性進行關聯了。

#springFormInput宏的源碼如下:(位置在spring-webmvc-*.jar這個包的org.springframework.web.servlet.view.velocity目錄下的spring.vm中,有興趣可以看看其他的配置)

可以看到,這裏定義了一個名爲springFormInput,參數爲$path 和$attributes,中間以空格分隔的宏,在宏裏面通過springMacroRequestContext綁定了對象狀態,同時生成一個表單輸入域。

這樣我們提交的內容就直接和userVO的loginName屬性進行綁定了,剩下的springShowErrors則是在驗證時出錯後顯示錯誤信息的宏,具體錯誤信息有默認錯誤信息,還可以通過註解定義也可以通過message.properties進行綁定(國際化嘛)。如:UserVO.user[not.blank]=密碼或用戶名不能爲空(記得要通過native2ascii進行轉碼),如果要使用message.properties則需要在dispatcherServlet-servlet.xml中增加:

這樣我們的SpringMVC基本上就算組成了。寫得爛,只能自己看看了!

發佈了12 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章