SpringMVC常用的注解

Ⅰ我衬、關于映射的注解

映射的概念

我對映射的理解:映射就是路徑和接口的對應關系曹动。一個相對路徑斋日,通過注解形式加在接口上,前端去請求這個地址墓陈,就相當于調用了相應的接口恶守。

以下面controller代碼為例,前端想請求Controller執(zhí)行studentLogin方法去處理某些數據贡必,那么在表單的提交地址中寫上@PostMapping注解中的值就行了

    @PostMapping("check")
    public ModelAndView studentLogin(Student student){
        ...
    }

前端:

<form method="post" action="/login/check">
    ...
</form>

映射常用的三個注解

  • @RequestMapping

    • @PostMapping:請求方式為post時用

      @PostMapping("test")
      

      其作用相當于

      @RequestMapping(value = "test",method = RequestMethod.POST)
      
    • @GetMapping:請求方式為get時用

      @GetMapping("test2")
      

      其作用相當于

      @RequestMapping(value = "test2",method = RequestMethod.GET)
      

Ⅱ兔港、其它注解

1.作用在參數上

①RequestParam

作用:建立參數名和前端頁面中的name值之間的關系

當前端頁面中的name值與controller中對應方法的參數名一樣時,@RequestParam是可以不用的

例如

public void Xxx(@RequestParam("sname") String studentName){...};

前端

學生名:<input type="text" name="sname">

在這個例子中仔拟,如果不加@RequestParam("sname")注解衫樊,那么studentName參數無法接收sname的值,只能為null

//表單中的name值為uage,不一定要求必須傳入這個數據,默認值為23
@RequestParam(value="uage",required=false,defaultValue="23")

②RequestHeader

獲取請求頭信息

public String  testRequestHeader(@RequestHeader("Accept-Language") String al)

獲取請求頭中的Accept-Language值,并將值保存再al變量中

③CookieValue

獲取Cookie中的值科侈,并將值保存再變量中

public void Xxx(@CookieValue("JSESSIONID") String jsessionid){...}

把cookie中的JSESSIONID保存在變量jsessionid中

④RequestBody

作用在形參列表上载佳,用于將前臺發(fā)送過來固定格式的數據(xml格式或者json等)封裝為對應的JavaBean對象

public LoginResponse login(@RequestBody LoginForm loginForm, HttpServletRequest request, HttpServletResponse response)

2.作用在類或者方法上

①ResponseBody

把Java對象轉換成json格式的數據,并寫入到response對象的body區(qū)臀栈,返回前端蔫慧。一般在AJAX(異步獲取數據)時用

哪個頁面調用了@ResponseBody注解的接口,那么接口返回的json數據就會返回給哪個頁面(誰請求就還給誰)

此時的返回不是一個 View頁面权薯,而是一個ajax調用的返回值(Json數組)

@ResponseBody
public Student Xxx(...){...}

②RestController

作用相當于ResponseBody+Controller

③ModelAttribute

作用在方法上

在任何一次請求前姑躲,都會先執(zhí)行@ModelAttribute修飾的方法

④SessionAttributes

處理模型數據:ModelAndView、ModelMap盟蚣、Map黍析、Model

用法:

public String testModel(Model model|Map<String,Object> m) {
    m.put(x,"..");
}

相當于把數據放入了request中

如何把這些數據放入session中?

  • 使用@SessionAttributes(..)注解

    @SessionAttributes("student")
    public class LoginController{...}
    

    相當于把這個controller中通過上述方法放在session中屎开,這個session對象的名字是student

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末阐枣,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子牍戚,更是在濱河造成了極大的恐慌侮繁,老刑警劉巖虑粥,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件如孝,死亡現場離奇詭異,居然都是意外死亡娩贷,警方通過查閱死者的電腦和手機第晰,發(fā)現死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彬祖,“玉大人茁瘦,你說我怎么就攤上這事〈⑿Γ” “怎么了甜熔?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長突倍。 經常有香客問我腔稀,道長,這世上最難降的妖魔是什么羽历? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任焊虏,我火速辦了婚禮,結果婚禮上秕磷,老公的妹妹穿的比我還像新娘诵闭。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布疏尿。 她就那樣靜靜地躺著瘟芝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褥琐。 梳的紋絲不亂的頭發(fā)上模狭,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音踩衩,去河邊找鬼嚼鹉。 笑死,一個胖子當著我的面吹牛驱富,可吹牛的內容都是我干的锚赤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼褐鸥,長吁一口氣:“原來是場噩夢啊……” “哼线脚!你這毒婦竟也來了?” 一聲冷哼從身側響起叫榕,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤浑侥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后晰绎,有當地人在樹林里發(fā)現了一具尸體寓落,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年荞下,在試婚紗的時候發(fā)現自己被綠了伶选。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡尖昏,死狀恐怖仰税,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情抽诉,我是刑警寧澤陨簇,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站迹淌,受9級特大地震影響河绽,放射性物質發(fā)生泄漏。R本人自食惡果不足惜巍沙,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一葵姥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧句携,春花似錦榔幸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牍疏。三九已至,卻和暖如春拨齐,著一層夾襖步出監(jiān)牢的瞬間鳞陨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工瞻惋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厦滤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓歼狼,卻偏偏與公主長得像掏导,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子羽峰,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359