2016-03-08 20 views
0

我正在學習使用thymeleaf模板來完成一個項目,我似乎正在完成並似乎缺少了一些東西。在Thymleaf和Spring啓動時訪問模型屬性

我試圖創建一個非常簡單的Hello類型的應用程序,這裏是我的代碼(注意,我用的常規):

控制器:

@Controller 
class TestController { 
    @RequestMapping("/") 
    String homePage(@RequestParam("name") String name, ModelAndView modelAndView){ 
    modelAndView.addObject("name", name) 
    return "home" 
    } 
} 

home.html的:

<!DOCTYPE html> 
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <meta charset="UTF-8" /> 
    <title></title> 
</head> 
<body> 
    <h1>Hello</h1> 
    <p th:text="${name}" /> 
</body> 
</html> 

我錯過了什麼?我只是得到「你好」,沒有別的,當我打:

http://localhost:8080/app-0.0.1-SNAPSHOT/?name=Sam

回答

1

你有備用選項與門禁控制器的數據與視圖名稱在HTML文件中返回

@Controller 
class TestController { 
    @RequestMapping("/") 
    public String homePage(@RequestParam("name") String name,Model model){ 
    model.addAttribute("name", name) 
    return "home" 
    } 
} 

<!DOCTYPE html> 
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <meta charset="UTF-8" /> 
    <title></title> 
</head> 
<body> 
    <h1>Hello</h1> 
    <p th:text="${name}" /> 
</body> 
</html> 

使用參數綁定模型對象,現在您需要使用鍵設置addAttribute您可以在不使用ModelAndView對象的情況下訪問數據。

0

回答我的問題,如果我改變控制器返回一個ModelAndView,像這樣:

@Controller 
class TestController { 
    @RequestMapping("/") 
    ModelAndView homePage(@RequestParam("name") String name){ 
    ModelAndView mav = new ModelAndView() 
    mav.addObject("name", name) 
    mav.setViewName("home") 
    return mav 
    } 
} 

然後,所有雖然教程顯示它像我最初的例子那樣工作 - 我很樂意這樣做。

1

我不知道,但你可以通過模型來更改的ModelAndView:

@Controller 
class TestController { 
    @RequestMapping("/") 
    String homePage(@RequestParam("name") String name, Model model){ 
    model.addAttribute("name", name) 
    return "home" 
    } 
}