SpringBoot+Thymeleaf删除配方成分提示缺少formulaId参数问题
问题根因
你遇到的报错是在删除操作完成后的重定向环节触发的,并非删除接口的参数传递问题:
/update-formula接口要求必须传入名为formulaId的请求参数,你在deleteIngredientInFormula方法中完成删除逻辑后,重定向语句return "redirect:/update-formula";没有携带该参数,因此触发了参数缺失报错。
解决方案
修改删除接口的重定向逻辑,将获取到的formId作为formulaId参数拼接在重定向地址中即可:
@GetMapping("delete-ingredient") public String deleteIngredientInFormula(@RequestParam("ingredientId") String inId, @RequestParam("formId") String formId) { formulaService.deleteIngredientInFormula(formId, inId); // 重定向时携带formulaId参数 return "redirect:/update-formula?formulaId=" + formId; }
可选优化建议
- 涉及数据删除的操作建议使用
@PostMapping或@DeleteMapping,避免浏览器预加载、爬虫爬取等场景触发误删 - 可以给
/update-formula的formulaId参数增加缺省处理,比如设置required = false,参数为空时跳转回配方列表页,避免异常报错直接暴露给用户
内容的提问来源于stack exchange,提问作者Stone
相关产品推荐
相关产品推荐

