• springboot学习笔记


    一.springboot映射web资源:
    1)src/main下的都是类路径。
    2.springboot打包为jar,如果想引入自己的静态资源。可以创建
    "静态资源文件夹":
    在resources下面创建文件夹:resource,public,static三个文件夹下面放入静态资源,
    如:
    -----resources
    -------resources
    ---------common
    -----------bots.js
    -------static
    -------public
    访问的时候直接输入localhost:8080/common/bots.js就能访问到
    二.欢迎页映射(首页映射):
    静态资源文件夹下面所有的index.html都可以称之为首页
    配置页面访问的图标:在静态资源文件夹下面添加favicon.ico命名的图片可以被springboot所识别
    三.可以自己定义静态资源文件夹的位置(一般建议使用默认的):
    在application.properties下写入配置文件:
    spring.resource.static-location=classpath:/common/,classpath:/js/定义多个静态资源文件夹
    定义过后以前默认的static,public,resources下面的静态资源就失效了。
    三.模板引擎:jsp,freemark,thymeleaf
    使用thymeleaf的话需要引入他的maven:starter-thymeleaf,(他的最新版本可以在github或者springboot
    的官方文档上查看。)
    在pom.xml的properties上添加:(thymeleaf3 需要 layout2 以上版本支持)
    <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
    <!--布局功能的支持-->
    <thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
    四.thmeleaf的自动配置原理:
    1.html需要放在templates下面
    2.在html里面导入thymeleaf的名称空间,这样就能收到他的语法提示:
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3.controller通过map放入值,前端通过th:text="${map里面放入的值}"来设置
    语法规则:
    th:任意属性:来替换原生属性的值
    th:text会转义特殊字符,如map里面放入<p>你好</p>前端会显示这个标签
    th:utext不会转义特殊字符。
    ${}获取值
    #{}和${}差不多,他是配合th:object使用的代表当前th:object对象
    @{}定义url:
    遍历:
    [[]]:在行内代表th:text
    将获取到的users的每个对象赋值给user,在通过th:text显示
    <h4 th:text="${user}" th:each="user : ${users}"></h4>
    <h4 th:each="user : ${users}">[[${user}]]</4>(效果同上)
    六.扩展springmvc:
    编写一个配置类,加上@Configuration注解,并且是WebMvcConfigurerAdapter
    类型,不能标注@EnableWebMvc,想扩展什么,就重写他的方法就行了。如果标注了@EnableWebMvc那么默认的配置就失效了,自己
    完全接管springmvc。
    七.实验
    1.html页面不要放在静态资源文件夹下,要放在template文件夹下,否则模板引擎不能解析页面
    2.因为静态资源里面也有index.html,在不配置的情况下默认访问的是静态资源里面的index.html如果想访问template里面的可以
    在controller里面映射页面或者在扩展springmvc的配置的时候映射资源请求的页面
    3.首页引入自定义样式:先导入thymeleaf名称空间,在区分是外部样式还是自己写的样式。(见图样式引入)
    外部样式:现在webjar里面引入外部js的maven,然后引入。
    4.修改项目的访问名:在application.properties里面加上server.context-path=/crud,以后访问都要加上这个名字:
    localhost:8080/crud/
    八.国际化
    1.创建国际化资源文件的路径:
    在resources目录下创建i18n文件夹,然后创建login.properties(默认的),login_en_US.properties(英文),login_zh_CN.propertis(中文)三个国际化
    资源文件.login.tip=请登录,login.tip=please sign,login.tip=请登录
    2.先指定国际化资源文件的路径:
    在application.properties,加上配置:spring.messages.basename=i18n.login
    3.前端取值。通过#取值。例如: th:text="#{login.tip}",可以通过th:元素,修改原生html的值;
    在行内的时候使用[[#{login.remember}]],例如:<p>[[#{login.remember}]]</p>
    4.编码转化:不然会出现中文乱码。
    在setting里面---file Encodings设置utf-8并勾选上自动编码(只针对单个项目)
    setting---other setting---default setting---file Encoding设置utf-8,并勾选上自动配置。(全局的)
    5.中英文切换:
    1.在中,英文上加上链接并且带上中英文的标识。
    2.自己写一个区域信息解析器。实现LocaleResolver类。(见图),实现里面的ResolveLocale方法并且
    放入参数里面的区域信息。
    3.将自己定义的区域信息解析器放在springmvc扩展的容器中:
    九.登录:
    一.让模板引擎实时生效。
    1.禁用掉模板引擎的缓存,并按ctrl+f9重新编译一下:
    在application.properties加上配置:spring.thymeleaf.cache=false让修改后的前端内容能够立即刷新。
    二.
    1)在前端的ation上面写入要提交的请求地址,并且写上登录失败的msg
    2)后台:
    3)防止表单重复提交,通过重定向:
    4)拦截器,进行登录检查:
    三.登录检查:通过拦截器实现
    1.在登录的controller的入参里面放入HttpSession session,将登录成功后的个人信息放在session里面
    session.setAttribute("loginUser",userName);只要登录了用户就会在session中存在。
    2.自定义一个拦截器实现HandlerInterceptor类,并且实现里面的方法。
    在preHandle方法里面,获取session信息,取得登录用户的个人信息。若存在则放行,不存在则放提示信息,转发到登录页面。
    Object user=request.getSession().getAttribute("loginUser");
    if(user!=null)
    {
    //已登录放行
    return true;
    }else
    {
    //未登录,返回提示信息,并且转发到登录页面
    request.setAttribute("msg","没有权限,请先登录");
    request.getRequestDispatcher("/index.html").forward(request,response);//转发到登录页面
    }
    3.在springmvc的扩展容器中注册拦截器方法
    1)需要将那些请求拦截掉,和不拦截那些请求
    2)springboot已经做好了静态资源的拦截,不需要再重新定义
    4.显示登录名:可以在session中取值:[[${session.loginUser}]]
    十.实验
    1.员工列表:
    2.公共页面抽取:
    抽取:在公共的部分写上th:fragment="copy"或者写上id="sidebar"
    插入:
    1.th:insert :将公共片段整个插入到申明的元素中
    2.th:replace:将声明元素替换为公共片段
    3.th:include:将被引入的内容包含进这个标签中
    例如:
    <div th:replace="~{dasbord::copy}"></div> //模板名:片段名
    <div th:replace="~{dasbord::#sidebar}"></div>//模板名:选择器
    3.页面写完过后ctrl+f9重新编译一下
    十一.在引入公共片段,放入入参:
    1.高亮显示链接:
    2.表格遍历:

  • 相关阅读:
    jquery层级选择器学习笔记
    html 大于号 小于号 空格显示
    MySql存储过程二---变量
    MySql 存储过程一--基本语法及参数介绍
    MySql delimiter
    MySql 关联查询
    MySql 数据库导入导出
    markdown 换行
    WPF 之 MVVM
    对memtester源码分析
  • 原文地址:https://www.cnblogs.com/anlegou/p/9750379.html
Copyright © 2020-2023  润新知