gpt4 book ai didi

java - 重定向或转发维护 BindingResults

转载 作者:行者123 更新时间:2023-11-30 11:36:49 25 4
gpt4 key购买 nike

我正在寻找一种方法来从一个 Controller 请求映射到另一个 Controller 进行重定向或转发。

情况是我有一个包含三个阶段的 Controller :用户输入数据 -> 预览页面 -> 提交。在预览请求映射中,我有模型属性及其 BindingResult。如果我在绑定(bind)中出现错误,我想使用重定向将用户推送回新表单,但是当我这样做时,Spring 会重新评估 ModelAttribute,从而重新创建 BindingResult。

部分代码:

@RequestMapping(value = "\new", method = RequestMethod.GET)
@ApplicationUserCreated
public String formNew(
@ModelAttribute("formBean") FormBean formBean,
BindingResult bindingResults,
Model uiModel) {
// Do some stuff

// Send the "new form" view
return "new.jsp";
}

@RequestMapping("/preview", method = RequestMethod.POST)
@ApplicationUserCreated
public String formPreview(
@ModelAttribute("formBean") FormBean formBean,
BindingResult bindingResults,
Model uiModel) {
// TODO: Validate the form
if(bindingResults.hasErrors()) {
// Redirect them back to the "New" form
return "redirect:" + "/new";
} else {
return "preview.jsp";
}
}

请原谅任何拼写错误,因为我不得不尝试简化一些代码。我尝试从 formNew() 方法中删除 BindingResults,但是当 Preview 重定向到 New 时,它似乎仍然覆盖了 BindingResults。我也尝试做一个“前进”,但结果相同。

最佳答案

当我需要将用户发送回 new.jsp 时,我最终只是从 formPreview() 调用了 formNew()。我没有得到重定向,因此浏览器中的 URL 显示为“/preview”,但至少它在工作,我觉得我没有在重复代码上浪费时间。

关于java - 重定向或转发维护 BindingResults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14382823/

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