我试图发送带有参数的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);
}
这是我得到的错误:
>我也收到此错误:
2017-12-03 01:07:10.138警告10108–[nio-8080-exec-1] .wsmsDefaultHandlerExceptionResolver:已解决由处理程序执行引起的异常:org.springframework.web.bind.MissingServletRequestParameterException:必需的字符串参数’name ‘不存在
我的问题是我在做什么错,为什么我没有收到带有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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。