使用@PathVariable重定向到另一个控制器

时间:2017-08-18 08:05:14

标签: java spring spring-mvc

如何在重定向中使用路径变量重定向到另一个控制器。 我尝试了以下方法,但得到了这个错误:

  

java.lang.IllegalArgumentException:Model没有key' formId'

的值

我是如何实现的:

Long formId = drugType.getFormId();
            view = "redirect:/pub/req/customForm/view/{formId}";

并由控制人员收到:

@RequestMapping(method = RequestMethod.POST,  value = "/pub/req/customForm/view/{formId}")
String completeCustomForm(@PathVariable Long formId,
        @Valid @ModelAttribute CustomFormLayout customFormLayout,
        BindingResult errors, HttpServletRequest request, Model model,
        RedirectAttributes attr) {

有关如何使用formId值重定向到此控制器的任何想法?

2 个答案:

答案 0 :(得分:2)

您可以构建重定向地址字符串:

return "redirect:/pub/req/customForm/view/" + drugType.getFormId();

或者添加一个名为路径变量的模型属性(" formId")并在视图名称中使用它(这是错误消息告诉你的)

model.addAttribute("formId", drugType.getFormId());
return "redirect:/pub/req/customForm/view/{formId}";

答案 1 :(得分:1)

尝试应用参数:

Long formId = drugType.getFormId();
view = "redirect:/pub/req/customForm/view/"+formId;