在Spring Boot中映射为Query Param的值

时间:2019-02-02 09:51:36

标签: java spring spring-boot http

我正在使用一个模型来查询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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果没有迫切需要,您可以摆脱中级Model类。您只需使用Map即可映射所有输入请求参数,因为您需要使用spring mvc @RequestParam批注,例如

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

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