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>首頁</title> </head> <body> <h3>Spring MVC</h3> </body> </html>
啟動Tomcat并訪問


注意:如果參數(shù)被@RequestParam注解,那么默認(rèn)情況下該參數(shù)不能為空,如果為空則系統(tǒ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";
}
}
啟動 Tomcat再次訪問


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

