如何使用java中的搜索正确地使用请求参数进行请求映射?
我遇到了一个问题,我试图用请求参数请求映射,基本上我需要对这个url如何使用java中的搜索正确地使用请求参数进行请求映射?,java,Java,我遇到了一个问题,我试图用请求参数请求映射,基本上我需要对这个urljobs?autocomplete=0100执行GET请求,出于某种原因,我得到了我所有的/jobs,你能帮我解决这个问题吗。谢谢 @RestController //@RequestMapping(value = "/jobs", params = "autocomplete") public class AutoCompleteController { private AutoCompleteService aut
jobs?autocomplete=0100
执行GET请求,出于某种原因,我得到了我所有的/jobs
,你能帮我解决这个问题吗。谢谢
@RestController
//@RequestMapping(value = "/jobs", params = "autocomplete")
public class AutoCompleteController {
private AutoCompleteService autoCompleteService;
private EntityManager em;
public AutoCompleteController(AutoCompleteService autoCompleteService, EntityManager em) {
this.autoCompleteService = autoCompleteService;
this.em = em;
}
@GetMapping(value = "/jobs", produces = "application/json")
public List<AutoComplete> getSalary(
@RequestParam(name= "autocomplete", required = true) String autocomplete,
@PathVariable("jobClassCd") String jobClassCd) {
return autoCompleteService.retrieveSalary(jobClassCd);
}
public void getAllSalaries(HttpServletResponse res, HttpServletRequest req) {
Stream<AutoComplete> stream = autoCompleteService.retrieveAllSalaries();
DataStreamUtility.streamObjects(stream, res, em);
}
}
@RestController
//@请求映射(value=“/jobs”,params=“autocomplete”)
公共类自动完成控制器{
专用自动完成服务自动完成服务;
私人实体管理者;
公共自动完成控制器(自动完成服务自动完成服务,实体管理器em){
this.autoCompleteService=autoCompleteService;
this.em=em;
}
@GetMapping(value=“/jobs”,products=“application/json”)
公共列表获取工资(
@RequestParam(name=“autocomplete”,required=true)字符串自动完成,
@PathVariable(“jobClassCd”)字符串jobClassCd){
返回autoCompleteService.retrieveSalary(jobClassCd);
}
public void GetAllSalives(HttpServletResponse res,HttpServletRequest req){
Stream=autoCompleteService.retrieveAllPalaries();
流对象(stream、res、em);
}
}
服务:
@服务
公共类自动完成服务{
私有自动补全自动补全;
公共自动完成服务(自动完成自动报告){
this.autocompleteRepository=autRepo;
}
公共列表检索列表(字符串jobClassCd){
列表工资=自动完成储蓄。通过jobClassCd(jobClassCd)查找;
如果(salaries.size(),则处理请求的方法必须有一个带注释的参数@RequestParam
:
获取本地主机:8080/作业?作业id=456
@GetMapping("/jobs", produces = "application/json")
public Book getJob(@RequestParam("job_id") Long id) {
return repo.findJobById(id);
}
因此,您的代码如下所示:
@GetMapping("/jobs", produces = "application/json")
public List<AutoComplete> getSalary(
@RequestParam("autocomplete", required = true) String autocomplete,
@PathVariable("jobClassCd") String jobClassCd) {
return autoCompleteService.retrieveSalary(jobClassCd);
}
@GetMapping(“/jobs”,products=“application/json”)
公共列表获取工资(
@RequestParam(“自动完成”,required=true)字符串自动完成,
@PathVariable(“jobClassCd”)字符串jobClassCd){
返回autoCompleteService.retrieveSalary(jobClassCd);
}
hi.你能给我看一下上面代码的实现吗?你正试图在类上放置@RequestMapping,但是,如果你想获取参数,你需要在方法上这样做。我将更新我的代码,就像你在方法级别上接受参数一样。因此,我在类上注释掉@RequestMapping,并添加了你拥有的方法已发布。当我进入localhost:8080/jobs/?autocomplete=456
并且PathVariable在请求映射中表示无法解析路径变量jobClassCd,并且字符串autocomplete
从未被使用时,仍然获得所有作业。欢迎使用堆栈溢出!在得到答案时不要删除您的问题。请参阅。
@GetMapping("/jobs", produces = "application/json")
public List<AutoComplete> getSalary(
@RequestParam("autocomplete", required = true) String autocomplete,
@PathVariable("jobClassCd") String jobClassCd) {
return autoCompleteService.retrieveSalary(jobClassCd);
}