美文网首页推文上热门(千万赞三)
springboot2.x(八)控制器和视图模板

springboot2.x(八)控制器和视图模板

作者: 学者的小跟班 | 来源:发表于2020-04-12 10:08 被阅读0次

学者学者原创

尊敬的读者朋友,大家好,本文是《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所示。

图1-8-3
关于Thymelaf模板引擎的语法、用法,我在之前的文章中有详细讲解,链接如下

相关文章

  • springboot2.x(八)控制器和视图模板

    学者学者原创 尊敬的读者朋友,大家好,本文是《springboot2.x独门秘籍》系列的第八篇。本专题的文章将会以...

  • 视图和模板

    视图和模板 [TOC] 控制器(在php文件)使用模板: VIew模板输出: 相应的html文件下使用name变量...

  • thinkphp5学习笔记(六)视图

    在控制器中使用视图的三种方法 模板引擎的配置 模板赋值的五种方法 视图渲染方法 模板输出替换 变量输出 模板布局和...

  • springboot独门秘籍专题源代码

    (六)编写第一个springboot程序!项目源码 提取码:f5mn (八)控制器和视图模板 :编码规范以...

  • Angular模版篇

    Angular 模板 什么是模板 在 Angular 中,组件扮演着控制器或视图模型的角色,模板则扮演视图的角色。...

  • 书籍展示----2.书籍列表显示

    前言 本节和类别逻辑差不多。创建视图模板文件->在视图控制器中写方法->在类别的ajax写个页面跳转->加个路由-...

  • 模态视图跳转

    需求:A视图控制器中presentB视图控制器,B视图控制器再presentC视图控制器。最后从C视图控制器直接返...

  • iOS小技巧·把子视图控制器的视图添加到父视图控制器

    把子视图控制器的视图添加到父视图控制器并覆盖 添加子控制器 把子视图控制器的视图添加到父视图控制器的指定容器视图,...

  • 模板视图加载

    视图 模板视图的文件创建方式:在index模块下创建view文件夹,在view文件夹下创建index(控制器)文件...

  • iOS_UI_03_视图控制器

    视图控制器 一、自定义视图(label-textField组合视图) 二、视图控制器 三、视图控制器指定视图 四、...

网友评论

    本文标题:springboot2.x(八)控制器和视图模板

    本文链接:https://www.haomeiwen.com/subject/ywrnehtx.html