SpringBoot復(fù)雜參數(shù)應(yīng)用詳細(xì)講解
復(fù)雜參數(shù):
- Map<String, Object> map
- Model model
- HttpServletRequest request
- HttpServletResponse response
以上復(fù)雜參數(shù)所攜帶的數(shù)據(jù)均可被放在 request 請(qǐng)求域中,其中 Map 與 Model 類型處理方法一致。(本文只介紹使用)
使用方法:
1. controller 類完整代碼:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@Controller
public class RequestController {
@GetMapping("/params")
public String testParam(Map<String, Object> map,
Model model,
HttpServletRequest request,
HttpServletResponse response){
map.put("map", "helloMap");
model.addAttribute("model", "helloModel");
request.setAttribute("message", "helloMessage");
Cookie cookie = new Cookie("c1", "v1");
cookie.setDomain("localhost");
response.addCookie(cookie);
return "forward:/success"; // 轉(zhuǎn)發(fā)到 /SUCCESS請(qǐng)求
}
@ResponseBody
@GetMapping("/success")
public Map success(HttpServletRequest request){
Map<String, Object> map = new HashMap<>();
Object hello = request.getAttribute("map");
Object model = request.getAttribute("model");
Object message = request.getAttribute("message");
map.put("hello", hello);
map.put("medol", model);
map.put("message", message);
return map;
}
}2. 具體解釋:
- map、model 里面的數(shù)據(jù)會(huì)被放在request的請(qǐng)求域, 通過request.getAttribute(“數(shù)據(jù)名”) 取得。
- HttpServletRequest 的數(shù)據(jù)也會(huì)被放在request的請(qǐng)求域, 通過request.getAttribute(“請(qǐng)求名”) 取得。
注意:使用return "forward:/success"轉(zhuǎn)發(fā)機(jī)制,Controller的注釋為 @Controller
3. 執(zhí)行結(jié)果:
通過request取得 Map,Medol,HttpServletRequest 的值如下圖所示:

設(shè)置cookies成功:

尾注:我是看尚硅谷老師的課學(xué)習(xí)的SpringBoot,30分鐘的課25分鐘debug看源碼(新手不友好),所以開始時(shí)真的很困難,可是只要跑起來就有風(fēng)不是嘛,哼,死磕到底!
到此這篇關(guān)于SpringBoot復(fù)雜參數(shù)應(yīng)用詳細(xì)講解的文章就介紹到這了,更多相關(guān)SpringBoot復(fù)雜參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java設(shè)計(jì)模式編程之解釋器模式的簡單講解
這篇文章主要介紹了Java設(shè)計(jì)模式編程之解釋器模式的講解,解釋器設(shè)計(jì)模式要注意其引發(fā)的性能問題,需要的朋友可以參考下2016-04-04
mybatis實(shí)現(xiàn)查詢操作及獲得添加的ID
這篇文章主要介紹了mybatis實(shí)現(xiàn)查詢操作及獲得添加的ID,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
Java實(shí)現(xiàn)掃雷游戲詳細(xì)代碼講解
windows自帶的游戲《掃雷》是陪伴了無數(shù)人的經(jīng)典游戲,本文將利用Java語言實(shí)現(xiàn)這一經(jīng)典的游戲,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-05-05
SpringBoot實(shí)現(xiàn)緩存組件配置動(dòng)態(tài)切換的步驟詳解
現(xiàn)在有多個(gè)springboot項(xiàng)目,但是不同的項(xiàng)目中使用的緩存組件是不一樣的,有的項(xiàng)目使用redis,有的項(xiàng)目使用ctgcache,現(xiàn)在需要用同一套代碼通過配置開關(guān),在不同的項(xiàng)目中切換這兩種緩存,本文介紹了SpringBoot實(shí)現(xiàn)緩存組件配置動(dòng)態(tài)切換的步驟,需要的朋友可以參考下2024-07-07
Java編程IP地址和數(shù)字相互轉(zhuǎn)換代碼示例
這篇文章主要介紹了Java編程IP地址和數(shù)字相互轉(zhuǎn)換代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-11-11
怎樣將一個(gè)JAR包添加到Java應(yīng)用程序的Boot?Classpath中
本文文章給大家介紹如何將一個(gè)JAR包添加到Java應(yīng)用程序的Boot?Classpath中,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的的朋友參考下吧2023-11-11

