学者学者原创
尊敬的读者朋友,大家好,本文是《springboot2.x独门秘籍》系列的第八篇。本专题的文章将会以springboot项目实战为切入点,带着你应用spring、springboot的相关知识,并手把手教你整合持久层框架、安全框架、web框架等,让springboot成为你面试和工作中的加分项。
文末还有项目源码和额外赠送的编程资料哟!点击蓝色字体可查看 往期精选文章!
01 学习环境(参考)
- windows10操作系统
- jdk1.8.0 + maven3.6.0
- myeclipse编辑器
02 本文主题
- 什么是控制器?如何创建控制器?
- 什么是视图模板?
03 spring中的控制器
控制器是处理请求,并以某种方式进行响应的类,也就是Spring MVC中controller的概念。
此处的“某种方式”指的是控制器的响应类型,有可能响应一个页面,也可能响应一些json数据。
关于Spring MVC中的细节,我们在后续的文章中会慢慢说明,现在,我们先展示一个简单的控制器类:前端请求网站主页,控制器处理该请求并返回主页视图,核心代码如代码清单1-8-1所示。
/**代码清单1-8-1 控制器功能演示*/
/**
* @描述:主页控制器
* @2020年4月12日
*/
@Controller
public class IndexController {
/**
* @描述:处理对根路径"/"的请求
* @return String
*/
@GetMapping("/")
public String index() {
//返回"index"视图
return "index";
}
}
@Controller注解功能是让Spring将该类识别为组件,并创建IndexController实例添加到Spring应用上下文中。
实际上,Spring中还有几个与@Controller效果一致的注解,包括
- @Component
- @Repository
- @Service
它们的作用效果完全相同,只不过此处@Controller注解更符合语义,更能描述出这个组件在应用中的作用。
index()方法是普通的控制器方法,@GetMapping("/")注解表明,如果对"/"发起HTTP GET请求,则由该类负责响应,该方法会返回String 类型的值。
index()方法的返回值会被解析为视图的逻辑名,上述代码中你可以理解为返回一个名为"index"的视图。
视图会被进一步解析为HTML页面返回给浏览器,浏览器会负责渲染HTML,形成可视化页面。
除了上述三点,代码注释也值得各位同学借鉴,在阿里巴巴编码规范一书中,对代码注释有如下规定
- 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式。
说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;
在 IDE中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。
- 【强制】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐
04 视图模板和Thymeleaf
视图模板的定义方式有很多,包括JSP、FreeMarker、Thymeleaf等。
Thymeleaf是Spring官方推荐的模板引擎,使用简单,功能强大,所以此处将以Thymeleaf的语法定义视图模板。
视图模板的名称是有控制器方法发挥的逻辑名派生而来的,如代码清单1-8-1中,index方法返回 的逻辑名为index。
逻辑名加前缀"/templates/"和后缀".html"就形成了完整的模板路径"/templates/index.html"。
前缀和后缀都是Spring官方默认,可以在配置文件中更改,但是完全没必要。
到此,我们讲解了什么是控制器以及如何由视图逻辑名找到视图模板,我们只需要在templates目录下创建index.html即可完成视图模板的创建。
视图模板定义了页面长什么样子,只要用Thymeleaf的语法正确引用js、css、图片等静态资源,浏览器就可以正常渲染,一个简单的视图模板如代码清单1-8-2所示。
<!-- 代码清单1-8-2 视图模板 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>视图模板index</title>
</head>
<body>
<h2>hello,欢迎查看"学者学者"的原创图文</h2>
<img th:src="@{/images/centos8.png}" alt="">
</body>
</html>
至此,控制器和视图模板均编写完毕,启动项目,在浏览器中请求http://localhost:8080/即可得到相应,如图1-8-3所示。
关于Thymelaf模板引擎的语法、用法,我在之前的文章中有详细讲解,链接如下
- Thymeleaf用法详解。
- 编码规范以及源码 提取码:qxi4。
网友评论