SpringMVC注解及實現(xiàn)頁面跳轉(zhuǎn)詳解_第1頁
SpringMVC注解及實現(xiàn)頁面跳轉(zhuǎn)詳解_第2頁
SpringMVC注解及實現(xiàn)頁面跳轉(zhuǎn)詳解_第3頁
SpringMVC注解及實現(xiàn)頁面跳轉(zhuǎn)詳解_第4頁
SpringMVC注解及實現(xiàn)頁面跳轉(zhuǎn)詳解_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、Spring MVC 第一講:SpringMVC 頁面跳轉(zhuǎn)實例,通過請求訪問start.jsp頁面 1.1 加包 1.2 web.xml         <servlet>           <servlet-name>springMVC</servlet-name>       

2、    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>           <load-on-startup>1</load-on-startup>       </servlet>    

3、60;  <servlet-mapping>           <servlet-name>springMVC</servlet-name>           <url-pattern>*.do</url-pattern>       </servlet-ma

4、pping> abc 1.3 建springMVC-servlet.xml(注:spring默認要求建立在WEB-INF目錄下,并且名稱為servlet-name_servlet.xml     <beans xmlns="/schema/beans"         xmlns:xsi="/2001/XMLSchema-in

5、stance" xmlns:p="/schema/p"         xmlns:context="/schema/context"         xsi:schemaLocation="     http:/www.s

6、/schema/beans     /schema/beans/spring-beans-3.0.xsd     /schema/context     /schema/context/spring-context-3.0.xsd"> 

7、0;       <context:component-scan base-package=".controllers" />         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">       

8、0;     <property name="prefix" value="/WEB-INF/page/"/>             <property name="suffix" value=".jsp"/>         </bean>

9、     </beans> 1.4 StartController.java     package .controllers;     import org.springframework.stereotype.Controller;     import org.springframework.web.bind.annotation.RequestMapping;    

10、 Controller     public class StartController          RequestMapping(value="/start")         public String start()             Sys

11、tem.out.println("start method invoked.");             return "start"               1.5 新建 WEB-INF/page/start.jsp 1.6 訪問:http:/localhost:8080/springMVC

12、_001/start.do 總結(jié):本例子搭建一個簡單的spingmvc實例,通過本例學習springMVC最簡單的流程及搭建元素。 第二講 靈活指定springmvc映射文件及路徑     更多情況下,對于第一講中的springMVC-servlet.xml 文件,我們并不想去放在WEB-INF,或者說我們可能在一個項目中并不是只有這一個文件,所以本節(jié)我們來講述如何靈活配置此文件及文件名。 2.1 修改web.xml     <servlet>  

13、60;        <servlet-name>springMVC</servlet-name>           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        

14、60;  <init-param>               <param-name>contextConfigLocation</param-name>               <param-value>classpath*:/com/wdl/cn/co

15、nfig/mvc/*.xml</param-value>           </init-param>           <load-on-startup>1</load-on-startup>       </servlet>    

16、   <servlet-mapping>           <servlet-name>springMVC</servlet-name>           <url-pattern>*.do</url-pattern>       </servlet

17、-mapping> 2.2 將WEB-INF下面的springMVC-servlet.xml 移動到.config.mvc包下并將其修改名稱為springMVC-first.xml 2.3 測試原來的路徑 : http:/localhost:8080/springMVC_002/start.do 總結(jié):本講主要學習了如何靈活配置springMVC配置文件。下節(jié)將重點講述RequestMapping的使用。 第三講 springMVC_003  RequestMapping的使用 3.1 RequestMapping 使用位置&#

18、160;    a.使用于方法,此方法則可以被請求訪問;     b.使用于類,則可以將請求分(又叫分路徑,分模塊)包處理 3.2 將controller類上加RequestMapping,修改StartController.java     package .controllers;     import org.springframework.stereotype.Controller;    

19、; import org.springframework.web.bind.annotation.RequestMapping;     Controller     RequestMapping(value="/test")     public class StartController          RequestMapping(value="/start&

20、quot;)         public String start()             System.out.println("start method invoked.");             return "start"

21、               3.3 訪問:http:/localhost:8080/springMVC_003/test/start.do ,由此可見,可以通過在類上加RequestMapping將請求分路徑。 3.4 RequestMapping 參數(shù)詳解     a.value表示訪問的路徑     b.method 表示請求的方式 GET | POST 

22、60;   step1:修改StartController.java     import org.springframework.stereotype.Controller;     import org.springframework.web.bind.annotation.RequestMapping;     import org.springframework.web.bind.annotation.RequestMethod; 

23、60;   Controller     RequestMapping(value="/test")     public class StartController          RequestMapping(value="/start",method=RequestMethod.GET)       

24、  public String start()             System.out.println("start method invoked.");             return "start"        

25、          RequestMapping(value="/start",method=RequestMethod.POST)         public String start2()             System.out.println("start2 method i

26、nvoked.");             return "start"                        step2:修改start.jsp模擬POST請求 3.5 訪問http:/localhost:8

27、080/springMVC_003/test/start.do,接著轉(zhuǎn)到start.jsp頁面,接著點擊頁面的中按鈕,發(fā)送POST請求,則可以看出不同的請求方式可以調(diào)用不同的方法。 3.6 參數(shù)傳遞(常用參數(shù)傳遞,restful風格參數(shù)傳遞)       a.httpservletreqeust方式參數(shù)傳遞         step1:修改StartController.java     

28、0;     package .controllers;     import javax.servlet.http.HttpServletRequest;     import org.springframework.stereotype.Controller;     import org.springframework.web.bind.annotation.RequestMapping;   

29、60; import org.springframework.web.bind.annotation.RequestMethod;     Controller     RequestMapping(value="/test")     public class StartController          RequestMapping(value="/start

30、",method=RequestMethod.GET)         public String start(HttpServletRequest request)             System.out.println("start method invoked.");       

31、60;     String name = request.getParameter("name");             int age = Integer.parseInt(request.getParameter("age");             System.o

32、ut.println("name=" + name + " age = " + age);             return "start"                  RequestMapping(value="/start",

33、method=RequestMethod.POST)         public String start2()             System.out.println("start2 method invoked.");             re

34、turn "start"                   step2:訪問:http:/localhost:8080/springMVC_003/test/start.do?name=zhangsan&age=45       b.restfull風格參數(shù)傳遞       &#

35、160; step1:修改StartController.java     package .controllers;     import org.springframework.stereotype.Controller;     import org.springframework.web.bind.annotation.PathVariable;     import org.springframework.web.bind.a

36、nnotation.RequestMapping;     import org.springframework.web.bind.annotation.RequestMethod;     Controller     RequestMapping(value="/test")     public class StartController       

37、   RequestMapping(value="/start/name/age",method=RequestMethod.GET)         public String start(PathVariable("name") String name,PathVariable("age") int age)          

38、60;  System.out.println("start method invoked.");             System.out.println("name="+name+" age="+age);             return "start"&

39、#160;                 RequestMapping(value="/start",method=RequestMethod.POST)         public String start2()           

40、  System.out.println("start2 method invoked.");             return "start"                   step2:訪問時,將參數(shù)值加入請求路徑 http:/localhost:8080/

41、springMVC_003/test/start/zhangsan/45.do 總結(jié):本講主要講述請求參數(shù)傳遞,主要掌握HttpServletRequest方式與restfull風格參數(shù)傳遞,下講主要講述form表單提交 第四講 form表單提交     使用struts2后,我們習慣將form表單的數(shù)據(jù)封裝成一個對象,這也是面向?qū)ο缶幊痰囊粋€思維,本節(jié)講述form表單提交。     具體代碼見UserController.java     package

42、 .controllers;     import java.text.SimpleDateFormat;     import java.util.Date;     import javax.servlet.http.HttpSession;     import pertyeditors.CustomDateEditor;     i

43、mport org.springframework.stereotype.Controller;     import org.springframework.web.bind.WebDataBinder;     import org.springframework.web.bind.annotation.InitBinder;     import org.springframework.web.bind.annotation.RequestMapping; &

44、#160;   import org.springframework.web.bind.annotation.RequestMethod;     import org.springframework.web.servlet.ModelAndView;     import .entity.User;     Controller     RequestMapping(value="/form")

45、     public class UserController          RequestMapping(value="/add",method=RequestMethod.GET)         public String toUserAddPage()         

46、60;   System.out.println("toUserAddPage method invoked.");             return "useradd"                     &#

47、160;   RequestMapping(value="/add",method=RequestMethod.POST)         public ModelAndView addUser(HttpSession session,User user)             System.out.println("addUser method

48、 invoked.");             System.out.println(user);             ModelAndView mav = new ModelAndView();             s

49、ession.setAttribute("abc", user);             mav.setViewName("redirect:/form/add.do");             mav.addObject("abc", user);    

50、;         /return "useradd"             return mav;                        

51、 InitBinder         public void initBinder(WebDataBinder binder)             binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false); 

52、60;                  注:addUser方法中參數(shù)User則是接收請求發(fā)過來的參數(shù);initBinder方法則是用來綁定用戶提交的數(shù)據(jù),前臺提交過來的日期,在這里后面并不知情,則由這個方法來處理。 總結(jié):本講主要講述如何來提交表單數(shù)據(jù),并將其封裝成一個對象。 第五節(jié) 一個Controller處理多個請求       很多情況下,我們都想把有關(guān)聯(lián)的請

53、求放在一個controller中,比如,對于一個用戶的增刪改查,都可以放在一個controller類中。對于springMVC注解的方式有兩種方式可以實現(xiàn)。     1.一個controller類中每個處理請求的方法的requestMapping的param中可以帶參數(shù),比如:RequestMapping(param="method=method1"),在類級別的RequestMapping上面指定請求路徑。     package .controllers;   

54、  import org.springframework.stereotype.Controller;     import org.springframework.web.bind.annotation.RequestMapping;     import org.springframework.web.servlet.ModelAndView;     Controller     RequestMapping(value

55、="/manyRequest")     public class ReceiveManyRequestController          RequestMapping(params="method=method1")         public ModelAndView methodOne()     

56、;        System.out.println("method methodOne invoked.");             ModelAndView mav = new ModelAndView("ReceiveManyRequest");         

57、60;   mav.addObject("msg", "請求第一個方法");             return mav;                  RequestMapping(params="method=method2")&

58、#160;        public ModelAndView methodTwo()             System.out.println("method methodTwo invoked.");             ModelAndView mav

59、= new ModelAndView("ReceiveManyRequest");             mav.addObject("msg", "請求第二個方法");             return mav;                            2.每個接收請求的方法的RequestMa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論