SpringMVC如何獲取多種類型數(shù)據(jù)響應(yīng)
SpringMVC獲取多種類型數(shù)據(jù)及響應(yīng)
1. 請(qǐng)求方式
瀏覽器向服務(wù)器發(fā)送的訪問請(qǐng)求方式,如GET、POST等
1.1 @RequestMapping
(1)利用注解@RequestMapping去接收請(qǐng)求
@RestController
//@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "/hello.jsp";
}
}上述代碼當(dāng)訪問路徑為localhost:8080/hello時(shí),將會(huì)執(zhí)行hello()方法,并返回hello.jsp頁面視圖。
(2)如果在類前加@RequestMapping(“/hello”)
@RestController
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "/hello.jsp";
}
}則訪問路徑為localhost:8080/hello/hello
(3)如果想指定請(qǐng)求方式可以用method方法
@RestController
@RequestMapping("/hello")
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
//@RequestMapping(value = "/hello", method = RequestMethod.POST)
public String hello() {
return "/hello.jsp";
}
}1.2 多個(gè)路徑映射
通過value屬性指定多個(gè)路徑
@RestController
public class HelloController {
@RequestMapping(value = {"/hello", "/hello1"})
public String hello() {
return "/hello.jsp";
}
}1.3 @GetMapping和@PostMapping
通過注解@GetMapping和@PostMapping指定GET和POST請(qǐng)求方法,也可以通過@RequestMapping的method方法指定請(qǐng)求方法
@RestController
public class HelloController {
@GetMapping("/hello")
//@PostMapping("/hello")
public String hello() {
return "/hello.jsp";
}
}2. 獲取數(shù)據(jù)類型
傳遞參數(shù)時(shí)可以通過多種數(shù)據(jù)類型傳參
2.1 @RequestParam
使用 @RequestParam 可以把請(qǐng)求參數(shù)傳遞給請(qǐng)求方法。
- value:參數(shù)名
- required:是否必須。默認(rèn)為 true, 表示請(qǐng)求參數(shù)中必須包含對(duì)應(yīng)的參數(shù),若不存在,將拋出異常
- defaultValue: 默認(rèn)值,當(dāng)沒有傳遞參數(shù)時(shí)使用該值
2.2 @PathVariable
- 通過 @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅小?/li>
- URL 中的 {x} 占位符可以通過 @PathVariable(“x”)綁定到操作方法的入?yún)⒅小?/li>
2.3 單個(gè)參數(shù)
(1)傳遞單個(gè)參數(shù)
@RequestMapping("/hello")
public String hello(String name){
System.out.println("hello:"+name);
return "/hello.jsp";
}控制臺(tái)會(huì)輸出hello:參數(shù)。
(2)通過指定URL傳參訪問
@RequestMapping("/hello/{name}")
public String hello(@PathVariable String name){
System.out.println("hello:"+name);
return "/hello.jsp";
}訪問路徑就為localhost:8080/hello?name=xxx
(3)如果訪問url參數(shù)與接收參數(shù)不一致,通過@PathVariable綁定參數(shù)
@RequestMapping("/hello/{username}")
public String hello(@PathVariable("username") String name){
System.out.println("hello:"+name);
return "/hello.jsp";
}2.4 多個(gè)參數(shù)
(1)傳遞多個(gè)參數(shù)
@RequestMapping("/login")
public String login(String name,String password){
System.out.println("用戶名:"+name+",密碼:"+password);
return "/login.jsp";
}控制臺(tái)會(huì)輸出 用戶名:參數(shù) ,密碼:參數(shù)。
(2)通過指定URL傳參訪問
@RequestMapping("/login/{name}/{password}")
public String login(@PathVariable String name,@PathVariable String password){
System.out.println("用戶名:"+name+",密碼:"+password);
return "/login.jsp";
}訪問路徑就為localhost:8080/hello?name=xxx
(3)如果訪問url參數(shù)與接收參數(shù)不一致,通過@PathVariable綁定參數(shù)
@RequestMapping("/login/{username}/{pass}")
public String login(@PathVariable("username") String name,@PathVariable("pass") String password){
System.out.println("用戶名:"+name+",密碼:"+password);
return "/login.jsp";
}2.5 實(shí)體類參數(shù)
(1)通過實(shí)體類接收參數(shù)
定義一個(gè)Login的實(shí)體類
import lombok.Data;
@Data
@Setter
@Getter
public class Login{
private String username;
private String password;
}在方法中用實(shí)體類接收
@RequestMapping("/login")
public String login(Login login) {
System.out.println("用戶名:"+login.username+",密碼:"+login.password);
return "/login.jsp";
}3. 返回對(duì)象和集合數(shù)據(jù)
傳遞參數(shù)時(shí)可以返回對(duì)象和集合
3.1 @ResponseBody
返回對(duì)象,需要使用 @ResponseBody 注解將對(duì)象轉(zhuǎn)換為 json 格式的數(shù)據(jù)響應(yīng)給瀏覽器。
3.2 返回 String
(1)SpringMVC 的視圖解析器將返回的字符串轉(zhuǎn)換為視圖(頁面)。
@RequestMapping("/hello")
public String hello() {
return "/hello.jsp";
}(2)使用 redirect 關(guān)鍵字可以重定向到其他頁面。
@RequestMapping("/hello")
public String hello() {
return "redirect:/hello.jsp";
}(3)使用 forward關(guān)鍵字可以轉(zhuǎn)發(fā)到其他頁面。
@RequestMapping("/hello")
public String hello() {
return "forward:/WEB-INF/views/hello.jsp";
}3.3 返回 Model
@GetMapping("/hello")
public String hello(Model model,String name) {
model.addAttribute("name", name);
return "/hello.jsp";
}(4)返回 ModelAndView
@RequestMapping("/hello")
public ModelAndView hello(String name) {
ModelAndView mv = new ModelAndView();
mv.addObject("name",name);
mv.setViewName("/hello");
return mv;
}(5)返回 json
@RequestMapping(value = "/login", produces = "application/json;charset=utf8")
@ResponseBody
public Object login() {
Login login = new Login();
login.setUsername("1");
login.serPassword("1");
String json = JSONUtil.toJsonStr(login);
return json;
}到此這篇關(guān)于SpringMVC獲取多種類型數(shù)據(jù)響應(yīng)的文章就介紹到這了,更多相關(guān)SpringMVC數(shù)據(jù)響應(yīng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決idea每次打開新的項(xiàng)目都需要重新配置maven問題
這篇文章主要介紹了解決idea每次打開新的項(xiàng)目都需要重新配置maven問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
springboot+dynamicDataSource動(dòng)態(tài)添加切換數(shù)據(jù)源方式
這篇文章主要介紹了springboot+dynamicDataSource動(dòng)態(tài)添加切換數(shù)據(jù)源方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
五分鐘解鎖springboot admin監(jiān)控新技巧
本文不會(huì)講如何搭建企業(yè)的運(yùn)維監(jiān)控系統(tǒng),有興趣的可以去找找成熟的比如Zabbix、Prometheus,甚至比較簡單的Wgcloud都能滿足一定的需求,不在此贅述。本文講解如何使用Springboot admin對(duì)spring boot項(xiàng)目進(jìn)行應(yīng)用監(jiān)控,感興趣的朋友一起看看吧2021-06-06
idea maven 項(xiàng)目src下的配置文件沒有同步至target的解決操作
這篇文章主要介紹了idea maven 項(xiàng)目src下的配置文件沒有同步至target的解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
新手小白學(xué)JAVA IDEA下載使用手冊(cè)全集
IDEA的每一個(gè)方面都是為了最大限度地提高開發(fā)人員的工作效率而設(shè)計(jì)的,它的智能編碼輔助和人機(jī)工程學(xué)設(shè)計(jì)會(huì)讓開發(fā)過程變得愉悅且高效,今天給大家分享新手小白學(xué)JAVA IDEA下載使用手冊(cè)全集,對(duì)idea新手使用相關(guān)知識(shí)感興趣的朋友跟隨小編一起學(xué)習(xí)吧2021-05-05
原理分析SonarQube中IdentityProvider賬戶互斥現(xiàn)象
這篇文章主要為大家介紹分析SonarQube中IdentityProvider賬戶互斥現(xiàn)象原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02
Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧
做項(xiàng)目的時(shí)候我們肯定接觸過很多jar包,下面這篇文章主要給大家介紹了關(guān)于Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
Java高級(jí)開發(fā)高頻面試題完整版(由淺入深&高薪必背)
Java是一個(gè)支持并發(fā)、基于類和面向?qū)ο蟮挠?jì)算機(jī)編程語言,這篇文章主要介紹了Java高級(jí)開發(fā)高頻面試題的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-03-03

