有没有办法检查我的控制器方法,我得到了普通的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 属性可能不会添加到模型中,因为它已存在于此模型中 - 由于能够在请求时显示已经完成的 MyForm ,因此执行此方法来自控制器B 的 loadPage 。