在进行了第一个springboot的微服务程序开发后,我们可以通过浏览器访问http://127.0.0.1/8080,看到微服务返回的字符串“Hello Spring";通过第jpa demo这个微服务程序,我们访问浏览器访问http://127.0.0.1/goods/1,显示结果类似如下:
我们可以看到这个微服务返回的是一个json字符串。因此我们可以在html里通过javascript来处理这个json字符串,从而以恰当的方式呈现给用户。
那么问题来了,在springboot中我们如何让后端服务程序响应浏览器的请求,返回一个html页面呢?
springboot整合了模板引擎,我们通过模板引擎就可以响应前端的请求,返回定义好的静态页面。具体如何作呢?
我使用了Thymeleaf这个模板引擎,在新建springboot项目时,选择spring web,然后系统会给出模板引擎的选择项,有Themyleaf, Freemarker等可以选择,根据自己的喜好选择就好。
在新建project或idea module时,我们要选择spring web这个starter,他默认提供了对web,spring MVC的支持。然后在项目配置文件pom.xml里我们需要添加对thymeleaf的依赖项(如果使用的eclipse或Idea的spring项目创建向导,而且选择了spring web的模板引擎,这里就不需要手动处理pom了):
org.springframework.bootspring-boot-starter-thymeleaf
然后我们需要实现一个controller来映射用户的请求路径,以及返回html页面。下面是一个controller的示例:
packagecom.efsoft.mvcdemo;
importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;
@Controllerpublic classindexController {
@RequestMapping("")
publicString getIndex() {
return"index";}
}
用注解@Controller指明这是一个web controller,@RequestMapping("")响应网站根目录这个网址如http://127.0.0.1:8080,相应内容为getIndex()方法返回的index.html这个页面。
我的index.html内容如下:
MVC Demo page
Welcome!
This is my first mvc demo.