前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot|Controller接收处理GET,POST请求入参

springboot|Controller接收处理GET,POST请求入参

作者头像
微笑的小小刀
发布2019-12-02 21:12:56
4.2K0
发布2019-12-02 21:12:56
举报
文章被收录于专栏:java技术大本营java技术大本营

Controller 接收入参

入参通常来说分两个情况,一种是Get, 一种是POST

Get请求的入参处理

代码语言:javascript
复制
/**
 * @Author https://www.javastudy.cloud
 * @CreateTime 2019/11/3
 **/
@RestController
public class ParamController {

    /**
     * 这里使用了 GetMapping 和 @RequestMapping(method = RequestMethod.GET)是一样的
     * 在方法入参的位置,把每个参数都平铺开来
     * @return
     */
    @GetMapping("param/handleGetParam1")
    public String handleGetParam1(String param1, String param2){
        String result = String.format("in handle1 param1 is %s, param2 is %s", param1, param2);
        return result;
    }

    /**
     * 把入参封装成一个实体,如果请求参数过多,一般大于5个时,用这种方法
     * @param demo
     * @return
     */
    @GetMapping("param/handleGetParam2")
    public String handleGetParam2(ParamDemo demo){
        String result = String.format("in handle2 param1 is %s, param2 is %s", demo.param1, demo.param2);
        return result;
    }

    /**
     * 使用静态内部类,简单定义一个入参实体类
     */
    static class ParamDemo{
        private String param1;
        private String param2;

        public String getParam1() {
            return param1;
        }

        public void setParam1(String param1) {
            this.param1 = param1;
        }

        public String getParam2() {
            return param2;
        }

        public void setParam2(String param2) {
            this.param2 = param2;
        }
    }
}

结果如下:

post请求入参处理

代码语言:javascript
复制
/**
     * Post 请求入参也可以这样平铺使用
     * 一般适用于前端Header中Content-Type为application/x-www-form-urlencoded的场景
     * @param param1
     * @param param2
     * @return
     */
    @PostMapping("param/handlePostParam1")
    public String handlePostParam1(String param1, String param2){
        String result = String.format("in handle1 param1 is %s, param2 is %s", param1, param2);
        return result;
    }

    /**
     * 入参为一个实体类的形式,没有任何注解
     * 一般适用于参数个数较多,在Header中Content-Type为application/x-www-form-urlencoded的场景
     * @param demo
     * @return
     */
    @PostMapping("param/handlePostParam2")
    public String handlePostParam2(ParamDemo demo){
        String result = String.format("in handle2 param1 is %s, param2 is %s", demo.param1, demo.param2);
        return result;
    }

    /**
     * 请求入参是一个实体,并且加上了 @RequestBody
     * 一般适用于前端Header中Content-Type 为 application/json的场景
     * 注意入参要是json格式
     * @param demo
     * @return
     */
    @PostMapping("param/handlePostParam3")
    public String handlePostParam3(@RequestBody ParamDemo demo){
        String result = String.format("in handle2 param1 is %s, param2 is %s", demo.param1, demo.param2);
        return result;
    }

PostMan模拟请求结果如下: 模拟时注意修改Header中Content-Type的值

模拟时注意修改Header中Content-Type的值

DEMO总评

入参处理这块不是很复杂,主要是要和前端的Header中的Content-Type对应,本次DEMO只讲了String类型的入参处理,后面会分享文件,数组等复杂类型的入参处理. 还有一种入参是@PathVariable的形式,这种在实际入开发中使用的少之又少,可以学习,不推荐实际开发中使用.加油吧!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Controller 接收入参
    • Get请求的入参处理
    • post请求入参处理
    • DEMO总评
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档