最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC如何獲取多種類型數(shù)據(jù)響應(yīng)

 更新時(shí)間:2023年11月27日 16:26:56   作者:芳乃家的幼刀會(huì)飛  
這篇文章主要介紹了SpringMVC如何獲取多種類型數(shù)據(jù)響應(yīng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

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)文章

  • SpringBoot底層注解超詳細(xì)介紹

    SpringBoot底層注解超詳細(xì)介紹

    這篇文章主要介紹了SpringBoot底層注解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09
  • 解決idea每次打開新的項(xiàng)目都需要重新配置maven問題

    解決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ù)源方式

    這篇文章主要介紹了springboot+dynamicDataSource動(dòng)態(tài)添加切換數(shù)據(jù)源方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 五分鐘解鎖springboot admin監(jiān)控新技巧

    五分鐘解鎖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
  • 分析JAVA中幾種常用的RPC框架

    分析JAVA中幾種常用的RPC框架

    這篇文章主要介紹了JAVA中幾種常用的RPC框架的相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友參考學(xué)習(xí)下吧。
    2018-03-03
  • idea maven 項(xiàng)目src下的配置文件沒有同步至target的解決操作

    idea maven 項(xiàng)目src下的配置文件沒有同步至target的解決操作

    這篇文章主要介紹了idea maven 項(xiàng)目src下的配置文件沒有同步至target的解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 新手小白學(xué)JAVA IDEA下載使用手冊(cè)全集

    新手小白學(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)象

    這篇文章主要為大家介紹分析SonarQube中IdentityProvider賬戶互斥現(xiàn)象原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧

    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高級(jí)開發(fā)高頻面試題完整版(由淺入深&高薪必背)

    Java是一個(gè)支持并發(fā)、基于類和面向?qū)ο蟮挠?jì)算機(jī)編程語言,這篇文章主要介紹了Java高級(jí)開發(fā)高頻面試題的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-03-03

最新評(píng)論

毕节市| 全南县| 仁布县| 邵阳市| 汤原县| 乌拉特前旗| 玉树县| 兖州市| 游戏| 伊川县| 永登县| 甘肃省| 阳原县| 金坛市| 抚顺县| 铁岭县| 呼和浩特市| 西乌珠穆沁旗| 石城县| 宁波市| 宣化县| 吴忠市| 江达县| 青川县| 濮阳市| 太谷县| 武功县| 石屏县| 贵溪市| 宕昌县| 富源县| 西乌珠穆沁旗| 镇江市| 华宁县| 芜湖市| 尚义县| 新化县| 抚松县| 平武县| 磴口县| 京山县|