繁体   English   中英

在Spring Boot中映射为Query Param的值

[英]Map as a value for Query Param in Spring Boot

我正在为GET调用的查询参数使用模型。

public class Model{
      private Map<String, Object> myField;
      public Map<String, Object> getMyField(){
          return this.myfield;
      }
      public void setMyField(Map<String, Object> myField){
          this.myField = myField;
      }
}

我的控制器是:

@RequestMapping(value="/view",method= RequestMethod.GET,produces={"application/json"})
@ResponseBody
public ResponseEntity<List<ViewResponse>> view(Model p_request) {}

这是我点击http://localhost:8080/view?myField={"states":"23"}的请求。 我得到400错误的错误请求,并且

java.lang.IllegalArgumentException:在请求目标中找到无效字符。 有效字符在RFC 7230和RFC 3986中定义

我做错了什么?

如果没有紧迫的需求,您可以摆脱中间的Model类。 您可以简单地使用Map来映射所有输入请求参数,为此您需要使用spring mvc @RequestParam批注,例如

public ResponseEntity<List<Object>> view(@RequestParam Map p_request) {
}

然后您无需发送带引号的http请求,该请求将变为: http localhost:8080/view\\?states=23

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM