Spring MVC如何使用@RequestParam注解獲取參數(shù)
使用@RequestParam注解獲取參數(shù)
創(chuàng)建Hello控制器類
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class Hello {
@RequestMapping("/show")
public String show(@RequestParam("name")String userName) {
System.out.println(userName);
return "index";
}
}
創(chuàng)建index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>首頁(yè)</title> </head> <body> <h3>Spring MVC</h3> </body> </html>
啟動(dòng)Tomcat并訪問(wèn)


注意:如果參數(shù)被@RequestParam注解,那么默認(rèn)情況下該參數(shù)不能為空,如果為空則系統(tǒng)會(huì)拋出異常。如果希望允許為空,那么要修改它的配置項(xiàng)required為 false。
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class Hello {
@RequestMapping("/show")
public String show(@RequestParam(value="name",required=false)String userName) {
System.out.println(userName);
return "index";
}
}
啟動(dòng) Tomcat再次訪問(wèn)


@RequestParam無(wú)法獲取參數(shù)
application/x-www-form-urlencoded是以表格的形式請(qǐng)求,而application/json則將數(shù)據(jù)序列化后才進(jìn)行傳遞,如果使用了@RequestParam會(huì)在Content里面查找對(duì)應(yīng)的數(shù)據(jù)。
結(jié)果因?yàn)閭鬟f的數(shù)據(jù)已經(jīng)被序列化所以不能找到,所以當(dāng)要使用@RequestParam注解時(shí)候應(yīng)當(dāng)使用application/x-www-form-urlencoded,而如果想要使用application/json則應(yīng)當(dāng)使用@RequestBody獲取被序列化的參數(shù)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Spring/SpringBoot?@RequestParam注解無(wú)法讀取application/json格式數(shù)據(jù)問(wèn)題解決
- 聊聊@RequestParam,@PathParam,@PathVariable等注解的區(qū)別
- SpringMVC注解@RequestParam方法原理解析
- 親測(cè)SpringBoot參數(shù)傳遞及@RequestBody注解---踩過(guò)的坑及解決
- 解決SpringMVC使用@RequestBody注解報(bào)400錯(cuò)誤的問(wèn)題
- springMvc注解之@ResponseBody和@RequestBody詳解
- @ResponseBody 和 @RequestBody 注解的區(qū)別
- @RequestParam?和@RequestBody注解的區(qū)別解析
相關(guān)文章
java線程池prestartCoreThread prestartAllCoreThreads的預(yù)熱源碼解讀
這篇文章主要介紹了java線程池prestartCoreThread prestartAllCoreThreads的預(yù)熱源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
SpringBoot中靜態(tài)訪問(wèn)配置屬性的解決方案對(duì)比
在SpringBoot開(kāi)發(fā)中,靜態(tài)訪問(wèn)配置信息是一個(gè)常見(jiàn)需求,尤其是在工具類中直接獲取配置值,下面我們就來(lái)看看幾個(gè)常用的方法,大家可以根據(jù)需要選擇2025-03-03
lombok注解@Data使用在繼承類上時(shí)出現(xiàn)警告的問(wèn)題及解決
Lombok的@Data注解簡(jiǎn)化了實(shí)體類代碼,但在子類中使用時(shí)會(huì)出現(xiàn)警告,指出equals和hashCode方法不會(huì)考慮父類屬性,解決方法有兩種:一是在父類上使用@EqualsAndHashCode(callSuper=true)注解;二是通過(guò)配置lombok.config文件,均能有效解決警告問(wèn)題2024-10-10
Spring Boot中自定義注解結(jié)合AOP實(shí)現(xiàn)主備庫(kù)切換問(wèn)題
這篇文章主要介紹了Spring Boot中自定義注解+AOP實(shí)現(xiàn)主備庫(kù)切換的相關(guān)知識(shí),本篇文章的場(chǎng)景是做調(diào)度中心和監(jiān)控中心時(shí)的需求,后端使用TDDL實(shí)現(xiàn)分表分庫(kù),需要的朋友可以參考下2019-08-08
Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題
這篇文章主要介紹了Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Java操作另一個(gè)Java程序使其重啟的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Java操作另一個(gè)Java程序使其重啟的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Java面向?qū)ο蠡A(chǔ)知識(shí)之委托和lambda
這篇文章主要介紹了Java面向?qū)ο蟮闹泻?lambda,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-11-11

