亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

1. 請求方式

瀏覽器向服務(wù)器發(fā)送的訪問請求方式,如GET、POST等

1.1 @RequestMapping

(1)利用注解@RequestMapping去接收請求

@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)如果想指定請求方式可以用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請求方法,也可以通過@RequestMapping的method方法指定請求方法

@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 可以把請求參數(shù)傳遞給請求方法。

  • value:參數(shù)名
  • required:是否必須。默認(rèn)為 true, 表示請求參數(shù)中必須包含對應(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. 返回對象和集合數(shù)據(jù)

傳遞參數(shù)時(shí)可以返回對象和集合

3.1 @ResponseBody

返回對象,需要使用 @ResponseBody 注解將對象轉(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java8 如何實(shí)現(xiàn)分組計(jì)算數(shù)量和計(jì)算總數(shù)

    java8 如何實(shí)現(xiàn)分組計(jì)算數(shù)量和計(jì)算總數(shù)

    這篇文章主要介紹了java8 如何實(shí)現(xiàn)分組計(jì)算數(shù)量和計(jì)算總數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java中@SuppressWarnings注解用法詳解

    java中@SuppressWarnings注解用法詳解

    這篇文章主要介紹了java中@SuppressWarnings注解用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java泛型初學(xué)者之上、下界通配符的深入理解

    Java泛型初學(xué)者之上、下界通配符的深入理解

    這篇文章主要給大家介紹了關(guān)于Java泛型初學(xué)者之上、下界通配符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者實(shí)用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Mybatis?saveAndUpdate空值不更新問題及解決

    Mybatis?saveAndUpdate空值不更新問題及解決

    這篇文章主要介紹了Mybatis?saveAndUpdate空值不更新問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀

    Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀

    這篇文章主要介紹了Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀,ReentrantLock中的lockInterruptibly()方法使得線程可以在被阻塞時(shí)響應(yīng)中斷,比如一個(gè)線程t1通過lockInterruptibly()方法獲取到一個(gè)可重入鎖,并執(zhí)行一個(gè)長時(shí)間的任務(wù),需要的朋友可以參考下
    2023-12-12
  • Java詳解swagger2如何配置使用

    Java詳解swagger2如何配置使用

    編寫和維護(hù)接口文檔是每個(gè)程序員的職責(zé),根據(jù)Swagger2可以快速幫助我們編寫最新的API接口文檔,再也不用擔(dān)心開會(huì)前仍忙于整理各種資料了,間接提升了團(tuán)隊(duì)開發(fā)的溝通效率
    2022-06-06
  • Logback日志存放路徑不統(tǒng)一解決方案

    Logback日志存放路徑不統(tǒng)一解決方案

    這篇文章主要介紹了Logback日志存放路徑不統(tǒng)一解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java 并發(fā)編程:volatile的使用及其原理解析

    Java 并發(fā)編程:volatile的使用及其原理解析

    下面小編就為大家?guī)硪黄狫ava 并發(fā)編程:volatile的使用及其原理解析。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • 面試JAVA時(shí),問到spring該怎么回答

    面試JAVA時(shí),問到spring該怎么回答

    這篇文章主要介紹了Spring面試資料,學(xué)Java的小伙伴都知道Spring是面試的必問環(huán)節(jié),看完了一天就可掌握數(shù)據(jù)結(jié)構(gòu)和算法的面試題,快來看看吧
    2021-08-08
  • @CacheEvict + redis實(shí)現(xiàn)批量刪除緩存

    @CacheEvict + redis實(shí)現(xiàn)批量刪除緩存

    這篇文章主要介紹了@CacheEvict + redis實(shí)現(xiàn)批量刪除緩存方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論