基於Spring的MVC的幾個關鍵點

張國平發表於2010-04-09

這個文章是個人學習備忘,可能有很多錯誤和誤解的地方,請指正

1、捕獲請求

使用類org.springframework.web.servlet.DispatcherServlet

這個方法通常放在web.xml

透過Servlet的url-pattern來獲取要求捕獲的要求。

比如*.do

2、請求排程

捕獲的請求可能多個,比如login.do,Registere.do等

這個時候,在spring-Servlet.xml裡面的UrlHandlerMapping,對各個請求進行排程

BTW:spring-Servlet名稱是為了方便DispatcherServlet獲得,也可以在DispatcherServlet裡面設定對應Spring的xml檔案。

UrlHandlerMapping的使用類是org.springframework.web.servlet.handler.SimpleUrlHandlerMapping。

其排程方法如下:

helloController

其中hello.do是請求url,helloController是處理該事件的bean的名稱。

3、事件處理

事件處理也就是,MVC裡面的Control。

方法可以自己寫,是繼承介面org.springframework.web.servlet.mvc.Controller,

實現ModelAndView handleRequest(HttpServletRequest arg0,
   HttpServletResponse arg1)

其中ModelAndView 是返回物件,個人感覺主要屬於V多過M,在MVC裡面

3、Model的說明

Model我的理解是這樣:比如使用者,UserModel

public class UserModel {
 private String userName=null;
    private String userPassWord=null;
    private String userMail=null;
    private String userDepartment;

}

get和set方法這邊就不細列名

那麼資料庫裡的使用者表就是mobel的例項引數,透過DAO,可以把資料庫的裡面使用者資訊,轉換成為UserModel的例項,供Controller操作。同樣,透過Controller可以把Registere.do裡面的註冊資訊,生成新建的UserModel,在透過DAO,存入資料庫。Spring裡面Model比較靈活,和Hibernate結合也比較方便。

4、View的情況

拿SimpleFormController作為例子,透過pojo,把Registere.do裡面POST的form

繫結到UserLoginForm,這裡面UserLoginForm是對於頁面表的物件化,和model有區別,這個是view。

而在SimpleFormController這個org.springframework.web.servlet.mvc.SimpleFormController其實也是Cotroller介面的繼承,

裡面透過commandClass來調取View,實現對View的處理。

5、viewResolver,

對應類是org.springframework.web.servlet.view.InternalResourceViewResolver

是C輸出的ModelandView的進行處理,使用views.properties屬性檔案來設定表示層技術的viewClass與url

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-631686/,如需轉載,請註明出處,否則將追究法律責任。

相關文章