2016/9/1

[maven 6] 建立SpringMVC , 捨去Struts


  • 捨去 Struts ,專案使用之框架只有 Spring + Mybatis , 記得把 web.xml 與 pom.xml的 struts設定都拿掉

  • 此範例建立方式有兩種
    • XML設定
    • Annotation設定
  •  XML設定
    • 將 SpringMVC 加入 maven的 pom.xml 並update project
    • 在web.xml 新增SpringMVC的分派器 dispatcher , 告訴 web 我的request要由springMVC解析 , 此時原本的 application.xml 與 mvc-config.xml共存  , 或者可以將application 的檔案放置於 mvc-config.xml中將 application刪除
      • 依照下面的設定中則會讀取mvc-config.xml中的定義,檔案路經變更為 classpath底下。
      • 預設檔名:如果不設置 "contextConfigLocation"初始參數,xml檔名預設為「Servlet名稱- servlet.xml ,以下圖範例為 " SpringMVCServlet-servlet.xml "
      • 預設路徑:WEB-INF



    • 在Resources目錄下建立 mvc-config.xml檔案 , 且設定如下 , 
    • prefix是指 jsp檔案的路徑位置 , 也可設置在 WEB-INF底下 ,
    • suffix是指副檔名
    • bean name /index1 是指 url requet
    • 在這邊使用的是 spring的注入觀念 , set property  在程式的一端 將有一個setter 對應 , 將value menu/indexTest1 注入到 viewPage這個屬性




    • 程式端  , 在controller這個自定義的 package建立一個class ,並且 implement  spring的controller interface , 內容如下
      • 屬性 viewPage :回傳之 jsp 檔案與路徑
      • ModelAndView : 
        • 參數一 :回傳之 jsp 檔案與路徑
        • 參數二 :頁面變數或物件 ?
        • 參數三 :參數二內容

    • 建立menu目錄 , 建立 indexTest1.jsp , 並且接應 controller端的 user 


    • Spring MVC會將所有的Request先導向給一支叫做DispatcherServlet的程式,接著DispatcherServlet會決定要把這個Request交給哪個Controller做處理 
      • 以上組合的總結 : client 送出 request /index1 , spring 將${user}塞入 /menu/indexTest1.jsp 並送回client
      • XML設定方式預設會呼叫handleRequest方法 , 至於能不能改變就待個人去研究 , 往後不多磊述 , 此篇只是簡單實現MVC

  • Annotation設定
    • 與XML設定方法比較 ,  不需要設定bean name "/index1" , 直接透過寫annotation的方式即可完成MVC 
    • 需在mvc-config中啟動 annotation , 告訴annotation在哪
    • 建立 controller  Index2Controller
    • 建立 jsp indexTest2.jsp
    • 測試 : 當request 呼叫 /index2/add 時 , 會呼叫 class Index2Controller 的 add方法 , 將${user}資料塞入menu/indexTest2.jsp並回傳給client , 結果如下







沒有留言:

張貼留言

test2