有没有办法检查我的控制器的方法,我得到了普通的 HTTP GET/POST 但没有来自另一个控制器的重定向请求?
例如我有
@Controller
public class A {
@RequestMapping("page1")
public String loadPage(final Model model) {
{
// SHOULD CHECK HERE WAS IT INVOKED FROM CLASS' B 'loadPage' METHOD
// OR DIRECTLY BY USER
if (!model.containsAttribute("myForm"))
{
model.addAttribute("myForm", new MyForm());
}
return "view1";
}
}
@Controller
public class B {
@RequestMapping("page2")
public String loadPage(final Model model, RedirectAttributes redirectAttributes) {
MyForm myForm = new MyForm();
// ...
// populate form here with some values
// myForm.setEntries(...);
redirectAttributes.addFlashAttribute("myForm", myForm);
return "redirect:page1";
}
}
更新:为了证明问题的真实性,请查看带有flashAttributes的更新代码片段,并在模型中检查 DTO 表单是否存在。如您所见,myForm属性可能不会被添加到 Model 中,因为它已经存在于那里 - 由于能够在 Controller B 对 loadPage 请求的情况下显示已经完成的MyForm ,因此执行此方法。