😀前言
本篇博文是關于SpringBoot 在響應客戶端請求時支持的復雜參數和自定義對象參數,希望您能夠喜歡😊
🏠個人主頁:晨犀主頁
🧑個人簡介:大家好,我是晨犀,希望我的文章可以幫助到大家,您的滿意是我的動力😉😉
💕歡迎大家:這里是CSDN,我總結知識的地方,歡迎來到我的博客,感謝大家的觀看🥰
如果文章有什么需要改進的地方還請大佬不吝賜教 先在此感謝啦😊
文章目錄
- SpringBoot接收參數相關注解應用
- 復雜參數
- 基本介紹
- 復雜參數應用實例
- 代碼實現
- 測試:
- 自定義對象參數-自動封裝
- 基本介紹
- 自定義對象參數-應用實例
- 代碼實現
- 測試
SpringBoot接收參數相關注解應用
復雜參數
基本介紹
- 在開發中,SpringBoot 在響應客戶端請求時,也支持復雜參數。
- Map、Model、Errors/BindingResult、RedirectAttributes、ServletResponse、SessionStatus、UriComponentsBuilder、ServletUriComponentsBuilder、HttpSession。
- Map、Model 數據會被放在request 域, 底層request.setAttribute()。
- RedirectAttributes 重定向攜帶數據。
復雜參數應用實例
說明: 演示復雜參數的使用,重點: Map、Model、ServletResponse
代碼實現
修改com/nlc/web/controller/RequestController.java
@Controller
public class RequestController {@GetMapping("/login")public String login(HttpServletRequest request) {request.setAttribute("user", "順順~");//向request域中添加的數據request.getSession().setAttribute("website", "http://www.baidu.com"); //向session中添加數據return "forward:/ok"; //請求轉發到 /ok}@GetMapping("/ok")@ResponseBodypublic String ok(HttpServletRequest request,@SessionAttribute(value = "website", required = false) String website,@RequestAttribute(value = "user", required = false) String username) {//獲取到request域中的數據System.out.println("username-" + username);System.out.println("通過servlet api 獲取 username-" + request.getAttribute("user"));System.out.println("website-" + website);System.out.println("通過servlet api 獲取 website-" + request.getSession().getAttribute("website"));return "success";}//響應一個注冊請求@GetMapping("/register")public String register(Map<String,Object> map,Model model,HttpServletResponse response) {//如果一個注冊請求,會將注冊數據封裝到map或者model//map中的數據和model的數據,會被放入到request域中map.put("user","nlc");map.put("job","java架構師");model.addAttribute("sal", 80000);//一會我們再測試response使用//我們演示創建cookie,并通過response 添加到瀏覽器/客戶端Cookie cookie = new Cookie("email", "www@my.com");response.addCookie(cookie);//請求轉發return "forward:/registerOk";}@ResponseBody@GetMapping("/registerOk")public String registerOk(HttpServletRequest request) {System.out.println("user-" + request.getAttribute("user"));System.out.println("job-" + request.getAttribute("job"));System.out.println("sal-" + request.getAttribute("sal"));return "success";}
}
測試:
瀏覽器http://localhost:8080/register
自定義對象參數-自動封裝
基本介紹
- 在開發中,SpringBoot 在響應客戶端請求時,也支持自定義對象參數
- 完成自動類型轉換與格式化
- 支持級聯封裝
自定義對象參數-應用實例
需求說明: 演示自定義對象參數使用,完成自動封裝,類型轉換
代碼實現
- 創建public/save.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>添加妖怪</title>
</head>
<body>
<h1>添加妖怪-坐騎[測試封裝POJO;]</h1>
<form action="/savemonster" method="post">編號: <input name="id" value="100"><br/>姓名: <input name="name" value="牛魔王"/> <br/>年齡: <input name="age" value="500"/> <br/>婚否: <input name="isMarried" value="true"/> <br/>生日: <input name="birth" value="2000/11/11"/> <br/>坐騎:<input name="car.name" value="奔馳"/><br/>價格:<input name="car.price" value="99999.9"/><input type="submit" value="保存"/>
</form>
</body>
</html>
- 創建com\nlc\web\bean\Car.java
@ToString
@Data
public class Car {private String name;private Double price;
}
- 創建com\nlc\web\bean\Monster.java
@Data
public class Monster {private Integer id;private String name;private Integer age;private Boolean isMarried;private Date birth;private Car car;
}
- 修改com/nlc/web/controller/ParameterController.java 增加處理添加請求
@PostMapping("/savemonster")public String saveMonster(Monster monster) {System.out.println("monster-" + monster);return "success";}
測試
完成測試, 瀏覽器http://localhost:8080/save.html
在開發過程中日期格式不用太在意,我們只要保證用戶界面和DB是需要的格式就夠了。
文章到這里就結束了,如果有什么疑問的地方請指出,諸大佬們一起來評論區一起討論😁
希望能和諸大佬們一起努力,今后我們一起觀看感謝您的閱讀🍻
如果幫助到您不妨3連支持一下,創造不易您們的支持是我的動力🤞