0

有没有办法检查我的控制器的方法,我得到了普通的 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 因此执行此方法。

4

0 回答 0