gpt4 book ai didi

java - 如何使用重定向传递复杂的 ModelAttribute : in Spring MVC 3. 0

转载 作者:行者123 更新时间:2023-11-30 04:57:56 24 4
gpt4 key购买 nike

大家好,我在寻找答案时遇到问题...

用例:

在 Controller 中读取 Excel 电子表格。处理了 4 行表,第 2 行和第 3 行有一些错误,因此我跳过它们并继续处理其余部分。但我想保留这些行以在处理完成后显示给用户。我想保留行中的所有值以向用户显示,只是为了提供足够的信息。

所以我尝试做的是:

@RequestMapping(value = "/bulk-create", method = RequestMethod.POST)
public String bulkCreate(Model model, SpreadSheetFile spreadSheetFile){
...some code...

List<Row> errorRows = new LinkedList<Row>();

...some code to process rows...

//Error Found
errorRows.add(row);

...more code to wrap up processing (possibly more errors)...

model.addAttribute("erroRows", errorRows);
return "redirect:/bulk-review"
}

@RequestMapping(value = "/bulk-review", method = RequestMethod.GET)
public String bulkReview(Model model,
@ModelAttribute("errorRows")
LinkedList<Row> errorRows){
model.addAttribute("errorRows", errorRows);
return "bulk-review";
}

所以基本上我试图将 LinkedList 从一个 MVC 方法传递到另一个 MVC 方法,而不首先实际点击页面(除非我误解了“redirect:”的工作原理......它首先调用 Controller 方法,正确吗?)

当我在bulkReview方法中设置一个断点时,errorRows为空...那么如何在两个方法之间保留这个值?

感谢您的帮助!如果我需要澄清任何事情,请告诉我! :)

克里斯

最佳答案

我认为重定向机制并不像您想象的那样工作。第一个 Controller 将 URL 发送回用户的浏览器,然后浏览器会跟踪该 URL。默认情况下,Spring 在重定向时将模型中的所有数据放入重定向 URL 中,以便重定向到的页面可以“看到”模型数据。但是,当模型中有复杂数据时,这种方法效果不佳。

因此,您需要考虑如何在浏览器发送回用户的重定向 URL 中传递数据。 List 如何序列化到 URL?可能不太好。

另一种选择是将数据从一个 Controller 放入 session 中并在第二个 Controller 中访问它。

关于java - 如何使用重定向传递复杂的 ModelAttribute : in Spring MVC 3. 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com