欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC請(qǐng)求參數(shù)的使用總結(jié)

 更新時(shí)間:2021年06月01日 09:48:03   作者:寒詠哥  
在日常使用SpringMVC進(jìn)行開發(fā)的時(shí)候,有可能遇到前端各種類型的請(qǐng)求參數(shù),本文主要接介紹了SpringMVC請(qǐng)求參數(shù)的使用總結(jié),感興趣的可以了解一下

本次數(shù)據(jù)請(qǐng)求使用postman, postman下載地址:https://www.getpostman.com/

一、頁(yè)面跳轉(zhuǎn)

1. 頁(yè)面跳轉(zhuǎn)

@Controller
public class IndexController {
 
    /**
     * 進(jìn)入首頁(yè)
     *
     * @return 首頁(yè)頁(yè)面
     */
    @RequestMapping("/")
    public String index(){
        return "/index";
    }
}

2. 請(qǐng)求轉(zhuǎn)發(fā)

@Controller
public class IndexController {
 
    /**
     * 進(jìn)入首頁(yè)
     *
     * @return 首頁(yè)頁(yè)面
     */
    @RequestMapping("/")
    public String index(){
        return "/index";
    }
 
    /**
     * 訪問登錄頁(yè)面時(shí),如果已經(jīng)登錄就轉(zhuǎn)發(fā)到首頁(yè),未登錄就進(jìn)入登錄頁(yè)面
     *
     * @return 登錄頁(yè)面
     */
    @RequestMapping("/login")
    public String forward(){
        if(true){
            return "forward:/index";
        }
        return "login";
    }
}

3. 重定向

@Controller
public class IndexController {
 
    /**
     * 進(jìn)入首頁(yè)
     *
     * @return 首頁(yè)頁(yè)面
     */
    @RequestMapping("/")
    public String index(){
        return "/index";
    }
 
    /**
     * 訪問登錄頁(yè)面時(shí),如果已經(jīng)登錄就重定向到首頁(yè),未登錄就進(jìn)入登錄頁(yè)面
     *
     * @return 登錄頁(yè)面
     */
    @RequestMapping("/login")
    public String redirect(){
        if(true){
            return "redirect:/index";
        }
        return "login";
    }
}

二、接收表單提交參數(shù)

1. 接收簡(jiǎn)單包裝類型

模擬用戶登錄,接收用戶名、密碼、驗(yàn)證碼參數(shù)

    /**
     * 提交登陸信息
     *
     * @param username 用戶名
     * @param password 密碼
     * @param captcha  驗(yàn)證碼
     * @return 結(jié)果
     */
    @PostMapping("/login1")
    @ResponseBody
    public Map<String, Object> submitLogin1(String username, String password, String captcha) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "登錄成功");
        resultMap.put("username", username);
        resultMap.put("password", password);
        resultMap.put("captcha", captcha);
        return resultMap;
    }

2. 通過request獲取請(qǐng)求參數(shù)

    /**
     * 提交登陸信息
     *
     * @return 結(jié)果
     */
    @PostMapping("/login2")
    @ResponseBody
    public Map<String, Object> submitLogin2() {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String captcha = request.getParameter("captcha");
 
 
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "登錄成功");
        resultMap.put("username", username);
        resultMap.put("password", password);
        resultMap.put("captcha", captcha);
        return resultMap;
    }

3. 接收對(duì)象類型

@Data
public class LoginUser {
 
    private String username;
 
    private String password;
 
    private String code;
}
    /**
     * 提交登陸信息
     *
     * @return 結(jié)果
     */
    @PostMapping("/login3")
    @ResponseBody
    public Map<String, Object> submitLogin3(LoginUser loginUser) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "登錄成功");
        resultMap.put("username", loginUser.getUsername());
        resultMap.put("password", loginUser.getPassword());
        resultMap.put("captcha", loginUser.getCaptcha());
        return resultMap;
    }

4.接收Map類型

    /**
     * 提交登陸信息
     *
     * @return 結(jié)果
     */
    @PostMapping("/login4")
    @ResponseBody
    public Map<String, Object> submitLogin4(@RequestParam Map<String, Object> loginUser) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "登錄成功");
        resultMap.put("username", loginUser.get("username"));
        resultMap.put("password", loginUser.get("password"));
        resultMap.put("captcha", loginUser.get("captcha"));
        return resultMap;
    }

5.接收數(shù)組類型

    /**
     * 修改角色權(quán)限
     *
     * @param userId 用戶id
     * @param roleIds 角色id
     * @return 結(jié)果
     */
    @PostMapping("/modifyRole1")
    @ResponseBody
    public Map<String, Object> modifyRole1(Integer userId, Integer[] roleIds) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "修改角色權(quán)限成功");
        resultMap.put("userId", userId);
        resultMap.put("roleIds", Arrays.toString(roleIds));
        return resultMap;
    }

6.接收List類型

    /**
     * 修改角色權(quán)限
     *
     * @param userId 用戶id
     * @param roleIds 角色id
     * @return 結(jié)果
     */
    @PostMapping("/modifyRole2")
    @ResponseBody
    public Map<String, Object> modifyRole2(Integer userId, @RequestParam("roleIds") List<Integer> roleIds) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "修改角色權(quán)限成功");
        resultMap.put("userId", userId);
        resultMap.put("roleIds", roleIds.toString());
        return resultMap;
    }

7.接收Set類型

    /**
     * 修改角色權(quán)限
     *
     * @param userId 用戶id
     * @param roleIds 角色id
     * @return 結(jié)果
     */
    @PostMapping("/modifyRole3")
    @ResponseBody
    public Map<String, Object> modifyRole3(Integer userId, @RequestParam("roleIds") Set<String> roleIds) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "修改角色權(quán)限成功");
        resultMap.put("userId", userId);
        resultMap.put("roleIds", roleIds.toString());
        return resultMap;
    }

8.接收帶List參數(shù)的實(shí)體類

@Data
public class ModifyRole {
 
    private Integer userId;
 
    private List<String> roleIds;
}
    /**
     * 修改角色權(quán)限
     *
     * @param modifyRole 數(shù)據(jù)
     * @return 結(jié)果
     */
    @PostMapping("/modifyRole4")
    @ResponseBody
    public Map<String, Object> modifyRole4(ModifyRole modifyRole) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "修改角色權(quán)限成功");
        resultMap.put("modifyRole", modifyRole.toString());
        return resultMap;
    }

三、接收J(rèn)SON參數(shù)

1. 接收帶List參數(shù)的實(shí)體類

@Data
public class ModifyRole {
 
    private Integer userId;
 
    private List<String> roleIds;
}
    /**
     * 修改角色權(quán)限
     *
     * @param modifyRole 數(shù)據(jù)
     * @return 結(jié)果
     */
    @PostMapping("/modifyRole5")
    @ResponseBody
    public Map<String, Object> modifyRole5(@RequestBody ModifyRole modifyRole) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "修改角色權(quán)限成功");
        resultMap.put("modifyRole", modifyRole.toString());
        return resultMap;
    }

2.接收List<Bean>類型

@Data
public class SysUser {
    
    private String username;
    
    private String password;
}
    /**
     * 批量新增用戶
     *
     * @param sysUserList 數(shù)據(jù)集合
     * @return 結(jié)果
     */
    @PostMapping("/batchInsert")
    @ResponseBody
    public Map<String, Object> batchInsert(@RequestBody List<SysUser> sysUserList) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "批量新增用戶成功");
        resultMap.put("modifyRoleList", sysUserList.toString());
        return resultMap;
    }

3.接收Set<Bean>類型

    /**
     * 批量新增用戶
     *
     * @param sysUserSet 數(shù)據(jù)集合
     * @return 結(jié)果
     */
    @PostMapping("/batchInsert2")
    @ResponseBody
    public Map<String, Object> batchInsert2(@RequestBody Set<SysUser> sysUserSet) {
        Map<String, Object> resultMap = new HashMap<>(16);
        resultMap.put("code", 200);
        resultMap.put("msg", "批量新增用戶成功");
        resultMap.put("modifyRoleSet", sysUserSet.toString());
        return resultMap;
    }

四、文件上傳、下載

1. 文件上傳

新建一個(gè)文件

    /**
     * 上傳文件
     *
     * @param multipartFile 上傳的文件
     * @return 結(jié)果
     */
    @PostMapping("/upload")
    @ResponseBody
    public void upload(MultipartFile multipartFile) throws IOException {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        // 獲取文件流
        InputStream inputStream = multipartFile.getInputStream();
        try (BufferedReader reader =  new BufferedReader(new InputStreamReader(inputStream, UTF_8.name()))){
            // 讀取文件數(shù)據(jù)
            String collect = reader.lines().collect(Collectors.joining());
            // 直接返回文件數(shù)據(jù)給前端
            attributes.getResponse().getWriter().write(collect);
        } catch (Exception e){
            e.printStackTrace();
        }
    }

2. 文件下載

    /**
     * 文件下載
     */
    @GetMapping("/download")
    public ResponseEntity<byte[]> download() throws IOException {
        File file = ResourceUtils.getFile("classpath:application.yml");
 
        byte[] body;
        try (InputStream is = new FileInputStream(file)){
            body = new byte[is.available()];
            is.read(body);
        }
 
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Disposition", "attchement;filename=" + file.getName());
        return new ResponseEntity<>(body, headers, HttpStatus.OK);
    }

到此這篇關(guān)于SpringMVC請(qǐng)求參數(shù) 的文章就介紹到這了,更多相關(guān)SpringMVC請(qǐng)求參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot?常用讀取配置文件的三種方法詳解

    SpringBoot?常用讀取配置文件的三種方法詳解

    這篇文章主要介紹了SpringBoot?常用讀取配置文件的3種方法,通過本文學(xué)習(xí)可以解決Spring Boot有哪些常用的讀取配置文件方式,一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如list,map如何配置,帶著這些問題一起通過本文學(xué)習(xí)吧
    2022-09-09
  • java操作elasticsearch的案例解析

    java操作elasticsearch的案例解析

    這篇文章主要介紹了java操作elasticsearch的案例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot程序的打包與運(yùn)行的實(shí)現(xiàn)

    SpringBoot程序的打包與運(yùn)行的實(shí)現(xiàn)

    本文主要介紹了SpringBoot程序的打包與運(yùn)行的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java實(shí)現(xiàn)占位符名稱替換值

    Java實(shí)現(xiàn)占位符名稱替換值

    占位符現(xiàn)在應(yīng)該說(shuō)是比較流行的動(dòng)態(tài)賦值,本文主要介紹了Java占位符名稱替換值,根據(jù)一串帶著參數(shù)名占位符的url,替換掉對(duì)應(yīng)參數(shù)名的值,感興趣的可以了解一下
    2021-07-07
  • 將Java程序的輸出結(jié)果寫到txt文件中的方法

    將Java程序的輸出結(jié)果寫到txt文件中的方法

    今天小編就為大家分享一篇將Java程序的輸出結(jié)果寫到txt文件中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-07-07
  • Java中數(shù)組的定義和使用教程(三)

    Java中數(shù)組的定義和使用教程(三)

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的定義和使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java中關(guān)于控制臺(tái)讀取數(shù)字或字符串的方法

    Java中關(guān)于控制臺(tái)讀取數(shù)字或字符串的方法

    下面小編就為大家?guī)?lái)一篇Java中關(guān)于控制臺(tái)讀取數(shù)字或字符串的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-10-10
  • mybatisPlus條件構(gòu)造器常用方法小結(jié)

    mybatisPlus條件構(gòu)造器常用方法小結(jié)

    這篇文章主要介紹了mybatisPlus條件構(gòu)造器常用方法,首先是.select和其他條件,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Java如果通過jdbc操作連接oracle數(shù)據(jù)庫(kù)

    Java如果通過jdbc操作連接oracle數(shù)據(jù)庫(kù)

    這篇文章主要介紹了Java如果通過jdbc操作連接oracle數(shù)據(jù)庫(kù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • MacBook Java開發(fā)環(huán)境搭建的詳細(xì)步驟(新手必備)

    MacBook Java開發(fā)環(huán)境搭建的詳細(xì)步驟(新手必備)

    本文主要介紹了MacBook Java開發(fā)環(huán)境搭建,文中通過圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評(píng)論