前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot:Web(附带示例代码)

SpringBoot:Web(附带示例代码)

作者头像
冷环渊
发布2021-10-19 15:35:29
8840
发布2021-10-19 15:35:29
举报

SpringBoot

学习视频链接:小狂神Springboot

每日格言:

志当存高远。——诸葛亮《诫外生书》

SpringBoot web开发

jar:webapp在哪里

最大特点:自动装配

SpringBoot帮我们配置了什么,能不能进行修改,能修改那些东西,能不能拓展

  • xxxxAutoConfiguration…向容器中自动配置组件
  • XXXXProperties:实现自动配置类装配配置文件中自定义的内容!

要解决的问题:

  • 导入静态资源,如何导入!
  • 首页问题
  • 模版引擎,thymeleaf
  • 装配扩展SpringMvc
  • 剩下的就只有增删改了
  • 拦截器
  • 扩展国际化

静态资源

代码语言:javascript
复制
@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) {
			if (!this.resourceProperties.isAddMappings()) {
				logger.debug("Default resource handling disabled");
				return;
			}
			addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
			addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
				registration.addResourceLocations(this.resourceProperties.getStaticLocations());
				if (this.servletContext != null) {
					ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
					registration.addResourceLocations(resource);
				}
			});
		}

什么是webjars

一个网站是和maven仓库类似的导入依赖的网站

导入的依赖结构是

我们的静态资源路径方法中

代码语言:javascript
复制
addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");

就是去类路径下找到/META-INF/resources/webjars/下的文件,

例子:

访问http://localhost:8080/webjars/jquery/3.6.0/jquery.js

实测成功

总结:

  1. SpringBoot处理静态资源的方式
    • webjars:http://localhost:8080/webjars/jquery/3.6.0/jquery.js
    • pubilc:按优先级排序:resources,static,public,如何访问:/**:
    • http://localhost:8080/1.js
  2. 优先级:resources>static(默认)》public

首页如何定制

在web配置类WebMvcAutoConfiguration中共有对首页的一系列处理

如何找得到资源下的index?

调用查找资源方法,找到index并且返回,没找到的话相对处理后返回空

SpringBoot页面跳转:

代码语言:javascript
复制
@Controller
public class HelloController {
@RequestMapping("/a")
    public String hello(){
        return "index";
    }

}

注意:

  • 在template目录下的所有页面,只能通过controller来跳转
  • 需要模版引擎的支持

模版引擎:Thymeleaf

我们以前用jsp来展示数据,模版引擎的作用就是我们来写一个页面模版,比如一些值,表达式,tomcat支持jsp但是由于我们用的是嵌入式的tomcat,所以他现在默认是不支持jsp的

thymeleaf:

Thymeleaf 是适用于 Web 和独立环境的现代服务器端 java 模板引擎,能够处理 html、XML、javaScript、CSS 甚至纯文本。

Thymeleaf 的主要目标是提供一种优雅且高度可维护的模板创建方式。为了实现这一点,它建立在自然模板的概念之上,以不影响模板用作设计原型的方式将其逻辑注入模板文件。这改善了设计的沟通并弥合了设计和开发团队之间的差距。

Thymeleaf也已经从一开始就设计了Web标准记-尤其是html5 -允许您创建充分验证模板

Springboot推荐使用模版引擎来简化开发,

引入依赖:

代码语言:javascript
复制
        <dependency>
            <groupId>org.thymeleafgroupId>
            <artifactId>thymeleaf-spring5artifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>

使用只需要导入依赖,我们将html放到templeats下就可以跳转了

注意:如果导入jar失败尝试回退版本,即可

thymeleaf基础语法:

代码语言:javascript
复制
<div th:text="${msg}">div>

表达式:

  • ${x}将返回x存储在 Thymeleaf 上下文中或作为请求属性的变量。
  • ${param.x}将返回一个名为(可能是多值的)的请求参数x
  • ${session.x}将返回一个会话属性x
  • ${application.x}将返回一个名为的servlet 上下文属性x

常用语法:

  • 简单的表达:
    • 变量表达式: ${...}
    • 选择变量表达式: *{...}
    • 消息表达: #{...}
    • 链接 URL 表达式: @{...}
    • 片段表达式: ~{...}
  • 文字
    • 文本字面量:'one text', 'Another one!',…
    • 数字字面量:0, 34, 3.0, 12.3,…
    • 布尔文字:true,false
    • 空字面量: null
    • 文字标记:one, sometext, main,…
  • 文字操作:
    • 字符串连接: +
    • 字面替换: |The name is ${name}|
  • 算术运算:
    • 二元运算符:+, -, *, /,%
    • 减号(一元运算符): -
  • 布尔运算:
    • 二元运算符:and,or
    • 布尔否定(一元运算符):!,not
  • 比较与相等:
    • 比较器:>, <, >=, <=( gt, lt, ge, le)
    • 等式运算符:==, !=( eq, ne)
  • 条件运算符:
    • 如果-那么: (if) ? (then)
    • 如果-然后-其他: (if) ? (then) : (else)
    • 默认: (value) ?: (defaultvalue)

常用代码示例:

controller:index

代码语言:javascript
复制
@Controller
public class HelloController {
@RequestMapping("/index")
    public String hello(Model model){
    model.addAttribute("msg","hello SpringBoot");
       model.addAttribute("users", Arrays.asList("hyc","lhy"));

        return "index";
    }

}

index.html

代码语言:javascript
复制
<div th:text="${msg}">div>

<div th:utext="${msg}">div>

<hr>

<h3 th:each="user:${users}" th:text="${user}">h3>

<h3 th:each="user:${users}" >[[${user}]]h3>
body>

小结:

  • 看了一下Springboot的WebMvcAutoConfiguration的设置首页的方法,发现和我们之前SpringMVC的视图解析器十分相似,对比学习,更加提高
  • 模版引擎可以方便我们把数据放到前端页面,简化我们的开发前端需要传值的操作,提升开发效率,
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot
    • 每日格言:
      • SpringBoot web开发
        • 静态资源
        • 什么是webjars
        • 首页如何定制
        • SpringBoot页面跳转:
      • 模版引擎:Thymeleaf
        • thymeleaf:
        • thymeleaf基础语法:
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档