2016-11-30 112 views
4

我對Spring Boot非常陌生。我正在用SpringBoot和Thymeleaf創建一個非常基本的應用程序。在控制器我有2種方法如下: -Spring Boot - 重定向到不同的控制器方法

方法1本方法從數據庫中顯示的所有數據:

@RequestMapping("/showData") 
public String showData(Model model) 
{ 
    model.addAttribute("Data", dataRepo.findAll()); 
    return "show_data"; 
} 

方法2 - 該方法將數據添加到數據庫中:

@RequestMapping(value = "/addData", method = RequestMethod.POST) 
public String addData(@Valid Data data, BindingResult bindingResult, Model model) { 
    if (bindingResult.hasErrors()) { 
     return "add_data"; 
    } 
    model.addAttribute("data", data); 
    investmentTypeRepo.save(data); 

    return "add_data.html"; 
} 

HTML文件與這些方法相對應,即show_data.html和add_data.html。

addData方法完成後,我想要顯示數據庫中的所有數據。不過,上面的代碼會將代碼重定向到靜態add_data.html頁面,並且不會顯示新添加的數據。我需要以某種方式調用控制器上的showData方法,因此我需要將用戶重定向到/ showData URL。這可能嗎?如果是這樣,這怎麼辦?

在此先感謝。

回答

14

試試這個,

@RequestMapping(value = "/addData", method = RequestMethod.POST) 
    public String addData(@Valid Data data, BindingResult bindingResult, Model model) { 

    //your code 

    return "redirect:/showData"; 
} 
+0

是的,這工作,非常感謝! – Reshma

0

您應該從addData請求中返回http狀態代碼3xx,並將redirct url放入響應中。