我現在學的是spring4.2
今天主要學習了Spring MVC注解
引入注解可以減少我們的代碼量,優化我們的代碼。
@Controller:用于辨別是處理器類;
@RequestMapping:請求到處理器功能方法的映射規則;
還是以示例來解釋說明
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}"
接下來是:請求處理方法可接收參數