Java HTTP状态400-必需的整数参数';IDX27;不在场
我的@Controller中有这么多方法: 技能列表: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
@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";
}