gpt4 book ai didi

spring - Angular 4 http 获取多个参数到 Spring 请求映射

转载 作者:太空狗 更新时间:2023-10-29 18:24:39 25 4
gpt4 key购买 nike

我正在尝试发送带有参数的 httpClient.get 请求并在我的 Spring Controller 中使用它。我想发送搜索条件并根据该条件返回对象列表。

这是我的 search.service.ts

 public getDentists(name, city, type, rating): Observable<Dentist[]>{

let params = new HttpParams();
params.set('name', name);
params.set('city', city);
params.set('type', type);
params.set('rating', rating);

return this.httpClient.get('dentists/', {params: params});
}

在我的 controller.java 中

@RequestMapping(value = "/dentists", method = RequestMethod.GET)
public List<Dentist> search(@RequestParam("name") String name,
@RequestParam("city") String city,
@RequestParam("type") String type,
@RequestParam("rating") String rating) {

return dentistRepository.findDentistByName(name);
}

这是我得到的错误:

enter image description here

  • 我也遇到了这个错误:2017-12-03 01:07:10.138 WARN 10108 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver:已解决由处理程序执行引起的异常:org.springframework.web.bind.MissingServletRequestParameterException:必需的字符串参数'名称' 不存在

我的问题是我做错了什么,为什么我没有收到带有 requestparam 的参数?

最佳答案

HttpParams是不可变的。所有的变异运算符都返回一个新实例,所以你必须做

let params = new HttpParams()
.set('name', name)
.set('city', city)
.set('type', type)
.set('rating', rating);

let params = new HttpParams();
params = params.set('name', name);
params = params.set('city', city);
params = params.set('type', type);
params = params.set('rating', rating);

关于spring - Angular 4 http 获取多个参数到 Spring 请求映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47613568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com