通過(guò)@RequestMapping 注解可以定義處理器對(duì)于請(qǐng)求的映射規(guī)則。該注解可以注解在方法上,也可以注解在類上,但意義是不同的。value 屬性值常以“/”開(kāi)始,也可不加“/”
@RequestMapping 的 value 屬性用于定義所匹配請(qǐng)求的 URI。但對(duì)于注解在方法上與類上,其 value 屬性所指定的 URI,意義是不同的。
一個(gè)@Controller 所注解的類中,可以定義多個(gè)處理器方法。當(dāng)然,不同的處理器方法所匹配的 URI 是不同的。這些不同的 URI 被指定在注解于方法之上的@RequestMapping 的value 屬性中。但若這些請(qǐng)求具有相同的 URI 部分,則這些相同的 URI,可以被抽取到注解在類之上的@RequestMapping 的 value 屬性中。此時(shí)的這個(gè) URI 表示模塊的名稱。URI 的請(qǐng)求是相對(duì)于 Web 的根目錄。
換個(gè)角度說(shuō),要訪問(wèn)處理器的指定方法,必須要在方法指定 URI 之前加上處理器類前定義的模塊名稱

Step1:修改處理器類 MyController

Step2:添加視圖頁(yè)面
在/WEB-INF/jsp 目錄下添加 some.jsp 與 other.jsp 頁(yè)面,刪除原 welcome.jsp 頁(yè)面。

對(duì)于@RequestMapping,其有一個(gè)屬性 method,用于對(duì)被注解方法所處理請(qǐng)求的提交方式進(jìn)行限制,即只有滿足該 method 屬性指定的提交方式的請(qǐng)求,才會(huì)執(zhí)行該被注解方法。
Method 屬性的取值為 RequestMethod 枚舉常量。常用的為 RequestMethod.GET 與RequestMethod.POST,分別表示提交方式的匹配規(guī)則為 GET 與 POST 提交。

以上處理器方法只能處理 POST 方式提交的請(qǐng)求??蛻舳藶g覽器常用的請(qǐng)求方式,及其提交方式有以下幾種:

也就是說(shuō),只要指定了處理器方法匹配的請(qǐng)求提交方式為 POST,則相當(dāng)于指定了請(qǐng)求 發(fā)送的方式:要么使用表單請(qǐng)求,要么使用 AJAX 請(qǐng)求。其它請(qǐng)求方式被禁用。
當(dāng)然,若不指定 method 屬性,則無(wú)論是 GET 還是 POST 提交方式,均可匹配。即對(duì)于請(qǐng)求的提交方式無(wú)要求。
Step1:修改處理器類 MyController

Step2:修改 index 頁(yè)面

@RequestMapping 中 params 屬性中定義了請(qǐng)求中必須攜帶的參數(shù)的要求。以下是幾種情況的說(shuō)明。
@RequestMapping(value=”/xxx.do”, params={“name”,”age”}) :要求請(qǐng)求中必須攜帶請(qǐng)求參數(shù) name 與 age
@RequestMapping(value=”/xxx.do”, params={“!name”,”age”}) :要求請(qǐng)求中必須攜帶請(qǐng)求參數(shù) age,但必須不能攜帶參數(shù) name
@RequestMapping(value=”/xxx.do”, params={“name=zs”,”age=23”}) :要求請(qǐng)求中必須攜帶請(qǐng)求參數(shù) name,且其值必須為 zs;必須攜帶參數(shù) age,其其值必須為 23