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

4

如何在重定向时使用路径变量跳转到另一个控制器。

我尝试了以下方式,但出现以下错误:

java.lang.IllegalArgumentException: Model has no value for 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) {

有什么想法可以将表单ID值重定向到此控制器吗?

在重定向之前,您的控制器中是否有formId信息? - XPLOT1ON
2个回答

3
尝试应用该参数:
Long formId = drugType.getFormId();
view = "redirect:/pub/req/customForm/view/"+formId;

3
您可以构建重定向地址字符串:
return "redirect:/pub/req/customForm/view/" + drugType.getFormId();

或者添加一个模型属性,名称与您的路径变量(“formId”)相同,并在视图名称中使用它(这就是错误消息告诉您的内容)。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接