加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 在同一方法上使用GET POST的RestController?

发布时间:2020-12-15 01:41:05 所属栏目:大数据 来源:网络整理
导读:我想使用spring-mvc创建一个方法并在其上配置GET POST: @RestControllerpublic class MyServlet { @RequestMapping(value = "test",method = {RequestMethod.GET,RequestMethod.POST}) public void test(@Valid MyReq req) { //MyReq contains some params

我想使用spring-mvc创建一个方法并在其上配置GET POST:

@RestController
public class MyServlet {
    @RequestMapping(value = "test",method = {RequestMethod.GET,RequestMethod.POST})
    public void test(@Valid MyReq req) {
          //MyReq contains some params
    }
}

问题:使用上面的代码,任何POST请求都会导致一个空的MyReq对象.

如果我将方法签名更改为@RequestBody @Valid MyReq req,则帖子有效,但GET请求失败.

如果bean被用作输入参数,那么就不可能在同一个方法上一起使用get和post吗?

最佳答案
您问题的最佳解决方案似乎是这样的:

@RestController
public class MyServlet {
    @RequestMapping(value = "test",method = {RequestMethod.GET})
    public void testGet(@Valid @RequestParam("foo") String foo) {
          doStuff(foo)
    }
    @RequestMapping(value = "test",method = {RequestMethod.POST})
    public void testPost(@Valid @RequestBody MyReq req) {
          doStuff(req.getFoo());
    }
}

您可以根据接收方式以不同方式处理请求数据,并调用相同的方法来执行业务逻辑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读