@Controller
@Controller用于標(biāo)記一個(gè)類谱净,使用它標(biāo)記的類就是一個(gè)SpringMVC Controller對(duì)象。Spring使用掃描機(jī)制查找應(yīng)用程序中所有基于注解的控制器類拜英。配置文件如下:
<context:component-scan base-package="org.fkit.controller"/>
<context:component-scan/>元素的功能是:?jiǎn)?dòng)包掃描功能,以便注冊(cè)帶有@Controller,@Service,@Repository,@Component等注解的類成為Spring的Bean读串,base-package屬性指定了需要掃描的類包聊记,類包及其遞歸子包中所有的類都會(huì)被處理。
@RequestMapping
@RequestMapping指示Spring用哪一個(gè)類或方法來處理請(qǐng)求動(dòng)作恢暖,該注解可用于類或方法排监。同時(shí)可以指定如下屬性:
- value,將URL映射到方法上進(jìn)行處理
- method杰捂,指示該方法僅僅處理哪些HTTP請(qǐng)求方式(若沒有指定舆床,則可以處理任意HTTP請(qǐng)求方式)
- consumes,處理請(qǐng)求的提交內(nèi)容類型(Content-Type: "application/json"或"text/html")
- produces嫁佳, 指定返回的內(nèi)容類型挨队,僅處理request請(qǐng)求頭(Accept)中所包含的類型
- params,指定request中必須包含某些參數(shù)值時(shí)蒿往,才讓該方法處理
- headers盛垦,request中必須包含某些指定的header值
參數(shù)綁定
@RequsetParam
@RequsetParam用于將指定的請(qǐng)求參數(shù)賦值給方法中的形參
- name,指定請(qǐng)求頭綁定的名稱
- value瓤漏,name屬性的別名
- required腾夯,指示參數(shù)是否必須綁定
- defauleValue,如果沒有傳遞參數(shù)而使用的默認(rèn)值
@PathVariable
可以非常方便獲得請(qǐng)求URL中的動(dòng)態(tài)參數(shù)
@RequestHeader
將請(qǐng)求的頭信息區(qū)域數(shù)據(jù)映射到功能處理方法的參數(shù)上
- name蔬充,指定請(qǐng)求頭綁定的名稱
- value蝶俱,name屬性的別名
- required,指示參數(shù)是否必須綁定
- defauleValue饥漫,如果沒有傳遞參數(shù)而使用的默認(rèn)值
@CookieValue
用于將請(qǐng)求的Cookie數(shù)據(jù)映射到功能處理方法的參數(shù)上
- name榨呆,指定請(qǐng)求頭綁定的名稱
- value,name屬性的別名
- required庸队,指示參數(shù)是否必須綁定
- defauleValue积蜻,如果沒有傳遞參數(shù)而使用的默認(rèn)值
@SessionAttributes
允許我們有選擇地指定Model中的哪些屬性需要轉(zhuǎn)存到HttpSession對(duì)象當(dāng)中。只能聲明在類上彻消,不能聲明的方法上浅侨。
- name,Model中屬性的名稱证膨,即存儲(chǔ)在HttpSession當(dāng)中的屬性名稱
- value如输,name屬性的別名
- types,指示參數(shù)是否必須綁定
@ModelAttribute
將請(qǐng)求參數(shù)綁定到Model對(duì)象央勒,只支持一個(gè)屬性vlaue不见,String類型,表示綁定的屬性名稱崔步。被@ModelAttribute注釋的方法會(huì)在Controller每個(gè)方法執(zhí)行前被執(zhí)行稳吮。
信息轉(zhuǎn)換
HttpMessageConverter<T>接口
負(fù)責(zé)將請(qǐng)求信息轉(zhuǎn)換為一個(gè)對(duì)象(類型為T),并將都系昂綁定到請(qǐng)求方法的參數(shù)中或輸出為響應(yīng)信息井濒。
轉(zhuǎn)換JSON數(shù)據(jù)
@ResponseBody會(huì)將集合數(shù)據(jù)轉(zhuǎn)換為json格式數(shù)據(jù)并將其返回客戶端灶似。
處理json格式的開源類包使用Jackson和fastjson列林,只是需要使用不同的HttpMessageConerter。
轉(zhuǎn)換XML數(shù)據(jù)
JAXB提供將XML實(shí)例文檔反向生成JAVA對(duì)象的方法酪惭,并能夠JAVA對(duì)象的內(nèi)容重新寫入XML實(shí)例文檔希痴。提供的注解@XmlRootElement,@XmlElement等。