Java HTTP状态400-必需的整数参数';IDX27;不在场

Java HTTP状态400-必需的整数参数';IDX27;不在场,java,spring,Java,Spring,我的@Controller中有这么多方法: 技能列表: @ModelAttribute(value = "skillsIdList") public Set<Skill> getSkillListById(@RequestParam(required = false) List<Integer> skills,@ModelAttribute("skills")List<Skill> allSkills ) { i

我的@Controller中有这么多方法:

技能列表:

    @ModelAttribute(value = "skillsIdList")
        public Set<Skill> getSkillListById(@RequestParam(required = false) List<Integer> skills,@ModelAttribute("skills")List<Skill> allSkills ) {
            if (skills== null)
                return null;
            Set<Skill> returnList = new  HashSet<Skill>();
            for(Integer skillId:skills){
                for(Skill skill:allSkills){
                    if(skillId.equals(skill.getId())){
                        returnList.add(skill);
                        break;
                    }
                }   
            }
            return returnList;
        }
空缺:

@ModelAttribute(value = "vacanciesForCandidate")
    public Set<Vacancy> vacanciesForCandidate(@RequestParam(required = false) List<Integer> vacanciesSelected,@ModelAttribute("vacancies")List<Vacancy> allVacancies ) {
        if (vacanciesSelected== null)
            return null;
        Set<Vacancy> returnList = new  HashSet<Vacancy>();
        for(Integer vacancyId:vacanciesSelected){
            for(Vacancy vacancy:allVacancies){
                if(vacancyId.equals(vacancy.getId())){
                    returnList.add(vacancy);
                    break;
                }
            }   
        }
        return returnList;
    }
@modeldattribute(value=“vacancesforcandidate”)
公共设置vacancesforcandidate(@RequestParam(required=false)列出vacancesselected,@modeldattribute(“空缺”)列出所有空缺){
如果(VacanCesselected==null)
返回null;
Set returnList=new HashSet();
for(整数vacancyId:VACANCESELECTED){
适用于(空缺:所有空缺){
if(vacancyId.equals(空位.getId())){
返回者名单。添加(空缺);
打破
}
}   
}
退货清单;
}
它起作用了

@RequestMapping("/saveCandidate")
    public String saveCandidate(Model model,HttpServletRequest request,HttpResponse response
            ,@ModelAttribute("candidateFromRequest") Candidate candidateFromRequest
            ,@ModelAttribute("skillsIdList") Set<Skill> skills
           ,@ModelAttribute("vacanciesForCandidate") Set<Vacancy> vacanciesForCandidate
            )
    {
        candidateFromRequest.setSkills(skills);
        candidateFromRequest.setVacancies(vacanciesForCandidate);
        candidateService.update(candidateFromRequest);
        return "candidateMenu";
    }
@RequestMapping(“/saveCandidate”)
公共字符串saveCandidate(模型、HttpServletRequest请求、HttpResponse响应
,@ModelAttribute(“candidateFromRequest”)候选candidateFromRequest
,@modeldattribute(“skillsIdList”)设置技能
,@ModelAttribute(“VacancesforCandidate”)设置VacancesforCandidate
)
{
候选人申请。技能(技能);
候选人申请。设置空缺(候选人的假期);
candidateService.update(candidateFromRequest);
返回“候选菜单”;
}
但它不起作用(HTTP状态400-不存在必需的整数参数“idCandidate”):

@RequestMapping(“/addCandidate”)
公共字符串addCandidate(模型、HttpServletRequest请求、HttpResponse响应
,@modeldattribute候选者myCandidate
,@modeldattribute(“skillsIdList”)设置技能
,@ModelAttribute(“VacancesforCandidate”)设置VacancesforCandidate)
{
我的候选人。技能(技能);
我的候选人。设置空缺(候选人的假期);
candidateService.add(myCandidate);
返回“候选菜单”;
}

我不理解此消息的原因,因为我写入了
@RequestParam(required=false)Integer idCandidate

您是否尝试了@RequestParam(value=“idCandidate”,required=false)?我遇到了同样的问题,它在添加value属性后工作。但是为什么需要这个值呢?
@RequestMapping("/saveCandidate")
    public String saveCandidate(Model model,HttpServletRequest request,HttpResponse response
            ,@ModelAttribute("candidateFromRequest") Candidate candidateFromRequest
            ,@ModelAttribute("skillsIdList") Set<Skill> skills
           ,@ModelAttribute("vacanciesForCandidate") Set<Vacancy> vacanciesForCandidate
            )
    {
        candidateFromRequest.setSkills(skills);
        candidateFromRequest.setVacancies(vacanciesForCandidate);
        candidateService.update(candidateFromRequest);
        return "candidateMenu";
    }
@RequestMapping("/addCandidate")
    public String addCandidate(Model model,HttpServletRequest request,HttpResponse response
            ,@ModelAttribute Candidate myCandidate
            ,@ModelAttribute("skillsIdList") Set<Skill> skills
           ,@ModelAttribute("vacanciesForCandidate") Set<Vacancy> vacanciesForCandidate)
    {
        myCandidate.setSkills(skills);
        myCandidate.setVacancies(vacanciesForCandidate);
        candidateService.add(myCandidate);
        return "candidateMenu";
    }