spring标签相关知识
-
拓展spring组件之自定义标签干货点 了解如何基于spring自定义标签,这是自定义组件的第一步。而最重要的是了解了这个过程后也可以大致了解spring自身部分组件是怎么相互工作和触发的,如spring-aop,组件可以通过反调AopNamespaceHandler了解大致面貌。 系列文描述 书写该系列文的初衷是因为最近正在负责一个组件的开发,于是打算将接触和学习到的知识写进博客里。这第一篇,记录基于spring如何自定义标签。 自定义标签的作用 自定义标签可以说是spring为了给类似你我这样的开发人员扩展组件使用的,因为它提供了一个
-
【Spring源码解读】bean标签中的属性说明 今天在阅读Spring源码的时候,发现在加载xml中的bean时,解析了很多标签,其中有常用的如:scope、autowire、lazy-init、init-method、destroy-method等等。但还有很多很少用甚至没用过的标签,看来对这个经常使用的框架,还是知之甚少,本着探索的精神,决定将bean中所有相关标签的作用做一次整理,以便完善自己的知识体系。 另外,说明一下,使用的Spring源码版本为当前最新版本5.2.0.BUILD-SNAPSHOT,跟老版本中的相关代码可能会有少数差异。 Spring中对属性标签的解析 解析Spring中
-
Dubbo标签解析详解 在Spring继承dubbo时,会使用dubbo自定义的标签来定义相关的属性,常见的标签有<dubbo:application/>,<dubbo:registry/>,<dubbo:service/>等。对于这些标签的解析,dubbo都是使用的统一的方式,而最终注册到Spring容器中的是一个个的以Config结尾的bean,比如:ApplicationConfig,RegistryConfig,ServiceBean等。本文主要讲解dubbo是如何按照统一的方式解析这些自定义标签的。这里首先我们在spring定义bean的xml文件中,可以看到,dubbo对应的xmlns所指定的URL为xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" 这里我们全局搜索dubbo.apache.org/schema/dubbo,可以找到
-
code标签和pre标签之间的关系前言 前些日子一同事问了我一个关于code标签和pre标签的问题,嗯,是的,这两个标签凑到一块,便出现了问题。于是总结了一下。此文就重点谈一下code标签和pre标签喽,谈谈他们的定义,区别,应用以及这两个家伙凑到一块应该怎么使用。以及当这两个标签嵌套使用时,不同的浏览器对这个嵌套的解析是什么。 一、嵌套顺序 co
spring标签相关课程
spring标签相关教程
- 认识换行标签 br 标签 在之前的章节中,我们学习了块级元素( p 标签,h 标签, div 标签),行内元素(span 标签),块级元素的特点是默认占一整行,会自动换行,行内元素默认是在同一行排列,如果我们想让两个行内元素换行显示,除了设置 CSS 样式之外,就是使用 换行标签 br 标签了。
- 认识标题标题 H 标签 我们这一章节所说的标题标签,和我们之前讲的 title 标签并不是同一个意思,我们这一章节说的标题标签,是指在网页上定义标题,如文章的标题,段落的标题等,而 title 标签特指网页的标题。所有,当我们需要给文章或者段落定义标题时,就需要用到 H 标签了。 H 标签分为 H1、H2、H3、H4、H5、H6,H1 位超大标题,然后依次递减,H6 为最小的标题。
- 认识表格标签 table 标签 表格在我们的网页中是非常常见的,比如我们要展示商品信息,工作安排,产品参数等都需要用到表格。那么在 html 中,使用表格就需要用到 table 标签了。但是表格不仅是 table 一个标签,需要用到和表格相关的一组标签,这一小节我们就来学习这些标签吧。
- 1.2 标签 DTL 中标签的写法为: {% 标签 %},常用的标签有 for 循环标签,条件判断标签 if/elif/else。部分标签在使用时,需要匹配对应的结束标签。Django 中常用的内置标签如下表格所示:标签描述{% for %}for 循环,遍历变量中的内容{% if %}if 判断{% csrf_token %}生成 csrf_token 的标签{% static %}读取静态资源内容{% with %}多用于给一个复杂的变量起别名{% url %}反向生成相应的 URL 地址{% include 模板名称 %}加载指定的模板并以标签内的参数渲染{% extends 模板名称 %}模板继承,用于标记当前模板继承自哪个父模板{% block %}用于定义一个模板块1.2.1 for 标签的用法:{# 遍历列表 #}<ul>{% for person in persons %}<li>{{ person }}</li>{% endfor %}</ul>{# 遍历字典 #}<ul>{% for key, value in data.items %}<li>{{ key }}:{{ value }}</li>{% endfor %}</ul>在 for 循环标签中,还提供了一些变量,供我们使用:变量描述forloop.counter当前循环位置,从1开始forloop.counter0当前循环位置,从0开始forloop.revcounter反向循环位置,从n开始,到1结束forloop.revcounter0反向循环位置,从n-1开始,到0结束forloop.first如果是当前循环的第一位,返回Trueforloop.last如果是当前循环的最后一位,返回Trueforloop.parentloop在嵌套for循环中,获取上层for循环的forloop实验:(django-manual) [root@server first_django_app]# cat templates/test_for.html 遍历列表:<ul>{% spaceless %}{% for person in persons %}{% if forloop.first %}<li>第一次:{{ forloop.counter }}:{{ forloop.counter0 }}:{{ person }}:{{ forloop.revcounter }}:{{ forloop.revcounter }}</li>{% elif forloop.last %}<li>最后一次:{{ forloop.counter }}:{{ forloop.counter0 }}:{{ person }}:{{ forloop.revcounter }}:{{ forloop.revcounter }}</li>{% else %}</li>{{ forloop.counter }}:{{ forloop.counter0 }}:{{ person }}:{{ forloop.revcounter }}:{{ forloop.revcounter }}</li>{% endif %}{% endfor %}{% endspaceless %}</ul>{% for name in name_list %} {{ name }}{% empty %} <p>name_list变量为空</p>{% endfor %} 倒序遍历列:{% spaceless %}{% for person in persons reversed %}<p>{{ person }}:{{ forloop.revcounter }}</p>{% endfor %}{% endspaceless %}遍历字典:{% spaceless %}{% for key, value in data.items %}<p>{{ key }}:{{ value }}</p>{% endfor %}{% endspaceless %}(django-manual) [root@server first_django_app]# python manage.py shellPython 3.8.1 (default, Dec 24 2019, 17:04:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from django.template.loader import get_template>>> tp = get_template('test_for.html')>>> content = tp.render(context={'persons':['张三', '李四', '王二麻子'], 'name_list': [], 'data': {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}})>>> print(content)遍历列表:<ul><li>第一次:1:0:张三:3:3</li></li>2:1:李四:2:2</li><li>最后一次:3:2:王二麻子:1:1</li></ul> <p>name_list变量为空</p> 倒序遍历列:<p>王二麻子:3</p><p>李四:2</p><p>张三:1</p>遍历字典:<p>key1:value1</p><p>key2:value2</p><p>key3:value3</p>1.2.2 if 标签:支持嵌套,判断的条件符号与变量之间必须使用空格隔开,示例如下。(django-manual) [root@server first_django_app]# cat templates/test_if.html{% if spyinx.sex == 'male' %}<label>他是个男孩子</label>{% else %}<label>她是个女孩子</label>{% endif %}(django-manual) [root@server first_django_app]# python manage.py shellPython 3.8.1 (default, Dec 24 2019, 17:04:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from django.template.loader import get_template>>> tp = get_template('test_if.html')>>> tp.render(context={'spyinx': {'age':29, 'sex': 'male'}})'\n<label>他是个男孩子</label>\n\n'>>> tp.render(context={'spyinx': {'age':29, 'sex': 'male'}})1.2.3 csrf_token 标签:这个标签会生成一个隐藏的 input 标签,其值为一串随机的字符串。这个标签通常用在页面上的 form 标签中。在渲染模块时,使用 RequestContext,由它处理 csrf_token 这个标签。下面来做个简单的测试:# 模板文件[root@server first_django_app]# cat templates/test_csrf.html <html><head></head><body><form enctype="multipart/form-data" method="post">{% csrf_token %}<div><span>账号:</span><input type="text" style="margin-bottom: 10px" placeholder="请输入登录手机号/邮箱" /></div><div><span>密码:</span><input type="password" style="margin-bottom: 10px" placeholder="请输入密码" /></div><div><label style="font-size: 10px; color: grey"><input type="checkbox" checked="checked"/>7天自动登录</label></div><div style="margin-top: 10px"><input type="submit"/></div></form></body></html># 定义视图:hello_app/views.py[root@server first_django_app]# cat hello_app/views.py from django.shortcuts import render# Create your views here.def test_csrf_view(request, *args, **kwargs): return render(request, 'test_csrf.html', context={})# 配置URLconf:hello_app/urls.py[root@server first_django_app]# cat hello_app/urls.pyfrom django.urls import pathurlpatterns = [ path('test-csrf/', views.test_csrf_view),]# 最后激活虚拟环境并启动django工程[root@server first_django_app] pyenv activate django-manual(django-manual) [root@server first_django_app]# python manage.py runserver 0:8881Watching for file changes with StatReloaderPerforming system checks...System check identified no issues (0 silenced).You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.Run 'python manage.py migrate' to apply them.March 27, 2020 - 04:10:05Django version 2.2.11, using settings 'first_django_app.settings'Starting development server at http://0:8881/Quit the server with CONTROL-C.现在通过外部请求这个URL,效果图如下。通过右键的检查功能,可以看到 {% csrf_token %} 被替换成了隐藏的 input 标签,value 属性是一个随机的长字符串:csrf_token标签1.2.4 with 标签:对某个变量重新命名并使用:(django-manual) [root@server first_django_app]# cat templates/test_with.html {% spaceless %}{% with age1=spyinx.age %}<p>{{ age1 }}</p>{% endwith %}{% endspaceless %}{% spaceless %}{% with spyinx.age as age2 %}<div>{{ age2 }} </div>{% endwith %}{% endspaceless %}(django-manual) [root@server first_django_app]# python manage.py shellPython 3.8.1 (default, Dec 24 2019, 17:04:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from django.template.loader import get_template>>> tp = get_template('test_with.html')>>> content = tp.render(context={'spyinx': {'age': 29}})>>> print(content)<p>29</p><div>29 </div>1.2.5 spaceless 标签:移除 HTML 标签中的空白字符,包括空格、tab键、换行等。具体示例参见上面的示例;1.2.6 cycle 标签:循环提取 cycle 中的值,用法示例如下# 假设模板如下:{% for l in list %}<tr class="{% cycle 'r1' 'r2' 'r3'%}">{{l}}</tr>{% endfor %}# 对于传入的 list 参数为:['l1', 'l2', 'l3'],最后生成的结果如下:<tr class="r1">l1</tr><tr class="r2">l2</tr><tr class="r3">l3</tr>1.2.7 include 标签:加载其他模板进来。{% include "base/base.html" %}除了加载模板进来外,include 标签还可以像加载进来的模板传递变量。假设我们有个 base/base.html 模板文件,其内容为:{# base/base.html #}Hello {{ name|default:"Unknown" }}此时,我们引入 base.html 模板文件时,可以给 name 传递变量值:{% include "base/base.html" with name="test" %}
- 2.1 标签操作 指令含义:tabnew新建标签页:tabfind查找并在新标签页中打开文件:tabs显示已经打开的标签页列表:tabclose关闭当前标签页:tabonly仅保留当前标签页打开:tabn/p/first/last移动到下/上/第一/最后一个标签页
- 认识 div 标签 大部分的 HTML 标签都是有默认样式的,如果我们不想使用标签自带的默认样式,那么我们就需要借助 CSS 来清除这些默认样式。那有没有哪一个标签是没有默认样式的呢?答案是肯定的,就是我们的 div 标签。因为 div 标签是没有默认样式的,所以在网页布局时,我们更推荐使用 div 标签去搭建我们网页的结构,这样我们所有的样式都可以自定义了。
spring标签相关搜索
-
s line
safari浏览器
samba
SAMP
samplerate
sandbox
sanitize
saper
sas
sass
save
smarty模板
smil
smtp
snapshot
snd
snmptrap
soap
soapclient
soap协议