访问Thymleaf和Spring引导中的Model属性

时间:2016-03-08 00:31:50

标签: spring groovy thymeleaf

我正在学习使用百万美元模板来完成我正在完成的项目并且似乎缺少某些东西。

我正在尝试创建一个非常简单的Hello类型应用程序,这是我的代码(注意我使用的是groovy):

控制器:

@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>

我错过了什么?我得到了#34;你好&#34;当我点击时没有别的:

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

3 个答案:

答案 0 :(得分:1)

我不确定但您可以按型号更改ModelAndView:

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

答案 1 :(得分:1)

您有访问控制器数据的备用选项,其中视图名称返回

@Controller
class TestController {
  @RequestMapping("/")
  public String homePage(@RequestParam("name") String name,Model model){
    model.addAttribute("name", name)
    return "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>

使用参数绑定模型对象,现在需要使用键和值par设置addAttribute,您可以在不使用ModelAndView对象的情况下访问数据。

答案 2 :(得分: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
  }
}

然后一切都很好,虽然教程显示它像我原来的例子一样工作 - 我很高兴这样做。