2016-06-28 54 views
0

我寫的代碼如下。如何使用RedirectAttributes在另一個控制器中調用一個控制器方法

Controller1 { 
    @Autowired 
    Controller2 controller2 
    //Caller method 
    void method1() { 
     controller2.furnction1(model,redirectattributes); 
    } 
} 

Controller2 { 

    public void function1(Model model, RedirectAttributes atr){ 

    } 
} 

的問題是:如何 並初始化在我的新控制器(控制器1RedirectAttributesredirectattributes)。 我的Controller1不是表單提交,所以我無法獲得RedirectAttributes默認情況下。

如何在controller2中調用funcation1。

+0

Dosent真正的樣子代碼!可以? – Prashant

+0

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 –

+0

我寫了高級表示法。 – user3686738

回答

0

在我看來,從其他控制器調用控制器不是一個好習慣。嘗試使用return redirect:/ function1來調用Controller2內部的function1。如果這是一個常見的功能/服務,請嘗試寫一個幫助你的工作。

0

什麼RedirectAttributes與POST請求做?

只需將它添加到您的第一個控制器方法作爲參數。

void method1(RedirectAttributes redirectattributes) { 
    controller2.furnction1(model,redirectattributes); 

}

但在對方說,這不是一個很好的模式,你應該使用類似:

return "redirect:/some/url"; 
1

重定向不會在這裏工作。所有的表單數據都將丟失。嘗試將請求轉發到另一個URL。

嘗試像

Controller1 { 

    @RequestMapping("url1") 
    public String method1() { 
    return "forward:/url2"; 
    } 
} 

Controller2 { 
    @RequestMapping("/url2") 
    public String function1(Model model, RedirectAttributes atr){ 
     //do something 
    } 
} 
相關問題