天天看點

Spring MVC 基礎注解之@RequestMapping、@Controller、(二) 

我現在學的是spring4.2

今天主要學習了Spring MVC注解 

引入注解可以減少我們的代碼量,優化我們的代碼。

@Controller:用于辨別是處理器類;

@RequestMapping:請求到處理器功能方法的映射規則;

還是以示例來解釋說明

Spring MVC 基礎注解之@RequestMapping、@Controller、(二) 

1 建立springAnnotation02項目,導入jar包。

   這裡的web.xml

由于要使用SpringMVC注解,是以springAnnotation-servlet.xml檔案需要增加springmvc的标記命名空間。

未使用SpringMVC注解時:

 修改過後的springAnnotation-servlet.xml。

使用Spring mvc注解時一個完整的springAnnotation-servlet.xml配置如下:

    接下來,我們完成一個最簡單的通過控制實作頁面間的跳轉。

  一個有送出的頁面

控制器

以上的代碼就可以進行一個簡單的頁面跳轉。

接下來進一步了解@RequestMapping的特性

 1、可以被配置在控制器類名上。

如:

2、三個常用屬性:value,params,method

   2-1、value必填屬性,代表請求的url,支援模糊配置。(value字可以省略,但是屬性值必須填)

@RequestMapping(value=“/users/**”)   比對“/users/abc/abc”;

@RequestMapping(value="/product?")   比對“/product1”或“/producta”,但不比對“/product”或“/productaa”;

@RequestMapping(value="/product*")   比對“/productabc”或“/product”,但不比對“/productabc/abc”; 

@RequestMapping(value="/product/*")   比對“/product/abc”,但不比對“/productabc”;

   2-2、params可選屬性,代表對請求參數進行過濾

@RequestMapping(value="/login.do",params="flag")   代表請求中必須要有名為flag的送出項 

@RequestMapping(value="/login.do",params="!flag")  代表請求中不能有名為flag的送出項

@RequestMapping(value="/login.do",params="flag=hello") 代表請求中必須有名為flag的送出項,且值為hello

@RequestMapping(value="/login.do",params="flag!=hello") 代表請求中如果有名為flag的送出項,其值不能為hello

@RequestMapping(value="/login.do",params={"flag1","flag2=hello"})代表請求中必須有名為flag1的送出項,同時必須有名為flag2的送出項,且flag2的值必須為hello

   2-3、method可選屬性,代表請求方式

@RequestMapping(value="/login.do",method=RequestMethod.POST)

@RequestMapping(value="/login.do",method=RequestMethod.GET)

@RequestMapping(value="/login.do", method= {RequestMethod.POST, RequestMethod.GET}"

接下來是:請求處理方法可接收參數