Diretório do artigo
- Primeiro, o comparador modelo comum
- Dois, thymeleaf rótulo
- Três, thymeleaf expressão
- ① $ {...}: expressão variável
- ② @ {...}: expressões de ligação
- ③ # {...}: Expressão mensagem
- ④ ~ {...}: bloco de código Expressão
- ⑤ * {...}: selecionar uma expressão variável
- Em quarto lugar, o uso nota thymeleaf
- Cinco, aplicações SpringBoot usando thymeleaf
Primeiro, o comparador modelo comum
breve introdução | |
---|---|
jsp | Java Server Pages , Tecnologia web dinâmico, pelo servidor de aplicativos no motor JSP para compilar e executar, e em seguida, gerar toda a volta página para o cliente. linguagem de expressão Support (EL, JSTL). Porque é sobre o projeto springboot composição do lado do servidor, o desempenho do consumo, por isso não é recomendado para uso jsp |
freemarker | Os arquivos são geralmente armazenadas como xxx.ftl estritamente dependente do padrão MVC, não depende de recipiente Servlet (não tomar a memória JVM), a sintaxe é mais complexa thymeleaf contraste |
thymeleaf | springboot motor de impulso principal modelo, modelo de motor leve (responsável pela lógica de negócios não é recomendado, ou análise XML DOM e mais ocupar memória). Podem ser abertos diretamente no navegador e exibido corretamente, ele não afeta a expressão, os arquivos de páginas de modelo terminando com html |
Dois, thymeleaf rótulo
①th: texto
Defina o conteúdo de texto do elemento atual. Modificações semelhantes para desenvolver a propriedade, bem th:utext
, exceto que o último não vai escapar do html
rótulo
②th: valor
Defina o elemento atual value
valor. Não são semelhantes th:src
,th:href
③th: cada
Laço através de elementos. th:each="item : ${collection}"
E depois usar as th:text="${item}"
expressões de atribuição para a atribuição de rótulo
④th: se
Condicional. Da mesma forma th:unless
, th:switch
, th:case
. Analisando exibição não esvaziarth:if="${not #strings.isEmpty(result)}"
⑤th: inserto
bloco de código é introduzido. , Tem th semelhante: substituir, th: incluem; th: inserção inserido na etiqueta actual, th: inserir: conservam a sua etiqueta primário, retenção th: fragmento da etiqueta principal. Tth: substituir: Não própria etiqueta principal, retenção th: fragmento do rótulo principal. th: incluem: Do not própria etiqueta principal, retenção th: fragmento do rótulo principal. (Não recomendado após o 3.0 oficial).
⑥th: fragmento
bloco de código definido
⑦th: objeto
variáveis DECLARAR. E geralmente *{}
utilizado em conjunto com
Três, thymeleaf expressão
① $ {...}: expressão variável
Comum objetos internos
explicação | |
---|---|
ctx | objeto de contexto |
de quem | variáveis de contexto |
localidade | Contexto de objetos de linguagem |
solicitação | Get objeto HttpServletRequest |
resposta | Get HttpServletResponse objeto |
sessão | Get HttpSession objeto |
Comum built-in método
explicação | |
---|---|
cordas | Corda método formatação, tais como iguais, equalsIgnoreCase, comprimento, a guarnição, toUpperCase, toLowerCase, indexOf, subsequência, substituir, startwith, endsWith, contém, containsIgnoreCase etc. |
números | formatDecimal |
bools | IsTrue, IsFalse |
matrizes | toArray, comprimento, isEmpty, contém, containsAll 等 |
lista, conjuntos | ToList, tamanho, isEmpty, contém, containsAll, tipo 等 |
mapas | tamanho, isEmpty, containsKey, ContainsValue 等 |
datas | formato, ano, mês, hora, createNow 等 |
② @ {...}: expressões de ligação
Você pode dinamicamente adquirir o caminho do projeto
③ # {...}: Expressão mensagem
④ ~ {...}: bloco de código Expressão
Ele suporta dois estrutura gramatical
Recomendado: ~{templatename::fragmentname}
Apoio:~{templatename::#id}
⑤ * {...}: selecionar uma expressão variável
E usado para th:object
combinação
Em quarto lugar, o uso nota thymeleaf
1, declarar namespace:xmlns:th="http://www.thymeleaf.org
2, definido o conteúdo do texto th:text
, conjunto input
valor th:value
, a saída do ciclo th:each
, determinação condição th:if
, em blocos de código th:insert
, o bloco de código é definido th:fragment
, o th declaração variável: objeto
3, th:each
sobre as necessidades de etiqueta para ser reciclado.
4, expressão variável fornece muitos built-in método, o método é usar o built #
início, e por favor não #{}
confundir a expressão mensagem.
5, th:insert
, th:replace
, th:include
semelhante ao efeito de três tipos em blocos de código, mas uma grande diferença.
Cinco, aplicações SpringBoot usando thymeleaf
① a introdução de thymeleaf
dependência
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>3.0.9.RELEASE</version>
</dependency>
② adicionar configuração
#通常thymeleaf默认的编码是HTML5,此时thymeleaf对一些标签的校验非常严格,通常我们需要添加配置spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.mode=LEGACYHTML5
#关闭thymeleaf缓存 开发时使用 否则没有实时画面
spring.thymeleaf.cache=false
③ adicionar um nekohtml
dependente
Configurar spring.thymeleaf.mode=LEGACYHTML5
após a partida a necessidade de introduzir bibliotecas adicionais NekoHTML
.
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.15</version>
</dependency>