Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java中的搜索正确地使用请求参数进行请求映射?_Java - Fatal编程技术网

如何使用java中的搜索正确地使用请求参数进行请求映射?

如何使用java中的搜索正确地使用请求参数进行请求映射?,java,Java,我遇到了一个问题,我试图用请求参数请求映射,基本上我需要对这个urljobs?autocomplete=0100执行GET请求,出于某种原因,我得到了我所有的/jobs,你能帮我解决这个问题吗。谢谢 @RestController //@RequestMapping(value = "/jobs", params = "autocomplete") public class AutoCompleteController { private AutoCompleteService aut

我遇到了一个问题,我试图用请求参数请求映射,基本上我需要对这个url
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);

}