检查重定向请求与否

时间:2013-08-14 19:02:41

标签: spring spring-mvc

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

0 个答案:

没有答案