Spring Boot -Controller(上)

Spring Boot -Controller(上)

@Controller 与@RestController

@RestController

@RestControllerpublic class HelloSpringBoot {//透过 @RequestMapping 指定从/会被对应到此hello()方法 @RequestMapping("/") public String hello(){ return "Spring Boot 很高兴认识你!"; }

先来认识一下 ,@RestController 主要是用来建置RESTful Web Servic的控制器,透过@RequestMapping("/")

从浏览器进入这个方法

他与@Controller差别在于@Controller最后会回到视图解析器就是我们所知道的Web Page页面,在java中传统的页面都是jsp所组成,但是Spring Boot并没有预设支持.jsp的页面我们要另外做处理

@RestController则是@ResponseBody + @Controller的结合,常见的我们可以返回一个JSON格式的资料给Client

端,就是我们熟悉的RESTful Service常用的传送资料格式。

那要回传Response一个页面的话 Spring Boot支持以下模板引擎

  • FreeMarker

  • Groovy

  • Thymeleaf (Spring官网推荐使用此模板引擎,之后会以此模板引擎作介绍)

  • Velocity

  • JSP (Spring Boot官方不推荐使用jsp作为我们的响应页面,STS的页面在src/main/resources下templates 目录,这里是模板文件的预设目录,并没有传统的SpringMVC或SSH架构下中的webapp目录,当然我们可以自己定义)

使用Thymeleaf的模板引擎

在pom.xml加入

Spring Boot -Controller(上)

在application.properties加入

spring.thymeleaf.prefix=classpath:/templates/

创建一个Controller类

Spring Boot -Controller(上)

@RequestParam(value="title", required=false, defaultValue="铁人赛 加油!") String title, Model model

@RequestParam去接收请求是否有带入title的name参数

required=false的意思是非必要

defaultValue="铁人赛 加油!" 意思是如果没有则带入铁人赛 加油!

Model:

我这边使用了org.springframework.ui.Model;

去增加了一个Attribute叫做name

将title参数添加到了Model叫做name上

下一步:

添加页面

在src->main->resources->templates

舔加index.html

Spring Boot -Controller(上)

如果都新增完毕,重启启动Spring Boot application

然后在浏览器输入:

(http://localhost:8080/MyFirstPage )

Spring MVC 传输流程图

Spring Boot -Controller(上)


分享到:


相關文章: