Tutorial Thymeleaf (Começando em 10 minutos)

Thymeleaf é um mecanismo de modelo para renderizar conteúdo XML/XHTML/HTML5. É semelhante a mecanismos de modelo, como JSP, Velocity, FreeMaker, etc., e também pode ser facilmente integrado a estruturas da Web, como Spring MVC. Em comparação com outros mecanismos de modelo, o maior recurso do Thymeleaf é que, mesmo que o aplicativo da Web não seja iniciado, a página do modelo pode ser aberta diretamente no navegador e exibida corretamente.

  1. Introdução ao Thymeleaf
    Thymeleaf é uma nova geração de mecanismo de modelo Java. Ao contrário dos mecanismos de modelo Java tradicionais, como Velocity e FreeMarker, o Thymeleaf suporta protótipos HTML e seu sufixo de arquivo é ".html", para que possa ser aberto diretamente pelo navegador , e o navegador irá ignorá-lo neste momento. Atributos de tag Thymeleaf indefinidos, mostrando o efeito de página estática do modelo thymeleaf; quando acessado por meio de um aplicativo da web, Thymeleaf substituirá dinamicamente o conteúdo estático para tornar a página exibida dinamicamente.

Thymeleaf atinge o modo de exibição de "modelo + dados" adicionando atributos adicionais na tag html, o código de amostra é o seguinte.

Title

Bem-vindo à página estática HTML

Quando aberto diretamente com um navegador, o navegador exibe os resultados da seguinte forma.

Bem-vindo à página estática HTML

Quando acessado por meio do aplicativo da Web, o navegador exibe os resultados da seguinte forma.

Bem-vindo ao Thymeleaf
Recursos do Thymeleaf
O mecanismo de modelo do Thymeleaf possui os seguintes recursos:
Combinação de dinâmico e estático: O Thymeleaf pode ser aberto diretamente com um navegador para visualizar o efeito estático da página ou acessado por meio de um aplicativo da Web para visualizar o efeito dinâmico da página.
Pronto para uso: o Thymeleaf fornece o dialeto padrão do Spring e um módulo opcional perfeitamente integrado ao SpringMVC, que pode implementar rapidamente funções como vinculação de formulários, editor de propriedades e internacionalização.
Suporte a vários dialetos: fornece dois dialetos padrão Thymeleaf e padrão Spring, que podem aplicar modelos diretamente para implementar expressões JSTL e OGNL; os desenvolvedores também podem expandir e criar dialetos personalizados quando necessário.
Integração perfeita com o SpringBoot: O SpringBoot fornece uma configuração padrão para o Thymeleaf e também define um resolvedor de visualização para o Thymeleaf, para que o Thymeleaf possa ser perfeitamente integrado ao Spring Boot.
2. Regras de sintaxe do Thymeleaf
Antes de usar o Thymeleaf, primeiro declare o namespace na tag html da página, o exemplo de código é o seguinte.

xmlns:th="http://www.thymeleaf.org"
Declare este namespace na tag html para evitar erros de validação html no editor, mas este passo não é necessário, mesmo que não declaremos o namespace Não afeta o uso da folha de tomilho.

Como um mecanismo de modelo, o Thymeleaf tem suas próprias regras gramaticais. A sintaxe do Thymeleaf é dividida nas 2 categorias a seguir:

Sintaxe de expressão padrão
th attribute
2.1 Sintaxe de expressão padrão
O mecanismo de modelo Thymeleaf suporta uma variedade de expressões:

Expressão de variável: ${…}
Expressão de variável de seleção: *{…}
Expressão de link: @{…}
Expressão de internacionalização: #{…}
Expressão de referência de fragmento: ~{…}
2.1.1
Uso de expressão de variável A expressão agrupada por ${} é chamada de expressão variável, que tem as seguintes funções:

Obter propriedades e métodos de um objeto
Usar objetos primitivos embutidos
Usar objetos utilitários embutidos

① Obtenha as propriedades e métodos do objeto

As propriedades e métodos dos objetos podem ser obtidos usando expressões variáveis. Por exemplo, para obter a propriedade lastName de um objeto pessoa, a forma da expressão é a seguinte:

${pessoa.últimoNome}

② Use objetos básicos embutidos

Usando expressões variáveis, você também pode usar objetos básicos integrados, obter propriedades de objetos integrados e chamar métodos de objetos integrados. Os objetos básicos embutidos comumente usados ​​no Thymeleaf são os seguintes:

#ctx : objeto de contexto;
#vars : variável de contexto;
#locale: localidade de contexto;
#request: objeto HttpServletRequest (disponível apenas em aplicativos da web);
#response: objeto HttpServletResponse (disponível apenas em aplicativos da web);
#session : objeto HttpSession ( disponível apenas em aplicações Web);
#servletContext: objeto ServletContext (disponível apenas em aplicações Web).

Por exemplo, podemos obter o atributo map no objeto de sessão através das duas formas a seguir:

${#session.getAttribute('map')}
${session.map}

③ Use objetos de ferramentas integrados

Além de poder usar objetos básicos integrados, as expressões variáveis ​​também podem usar alguns objetos utilitários integrados.

strings: objeto de ferramenta String, métodos comumente usados ​​são: equals, equalsIgnoreCase, length, trim, toUpperCase, toLowerCase, indexOf, substring, replace, startsWith, endsWith, contains e containsIgnoreCase, etc.; números: objeto de ferramenta Number, métodos comumente usados ​​são :
formatDecimal etc.;
bools: objeto de ferramenta booleana, métodos comumente usados ​​são: isTrue e isFalse, etc.;
arrays: objeto de ferramenta de array, métodos comumente usados ​​são: toArray, length, isEmpty, contains e containsAll, etc.;
listas/conjuntos : Objeto de ferramenta de coleção List/Set, os métodos comumente usados ​​são: toList, size, isEmpty, contains, containsAll e sort, etc.;
maps: Objeto de ferramenta de coleção de mapas, os métodos comumente usados ​​são: size, isEmpty, containsKey e containsValue, etc. ; datas
: objeto de ferramenta de data, os métodos comumente usados ​​são: formato, ano, mês, hora, createNow, etc.

Por exemplo, podemos usar o método equals das strings de objeto de ferramenta interna para determinar se uma string é igual a uma propriedade de um objeto, o código é o seguinte.

${#strings.equals('Programming Help',name)}
2.1.2 Selecionar expressão variável
Selecionar expressão variável é basicamente a mesma função que expressão variável, exceto que a cooperação com th:object é adicionada com base no uso da expressão variável . Depois de usar th:object para armazenar um objeto, podemos usar a expressão de variável de seleção ({…}) em seus descendentes para obter as propriedades no objeto, onde " " representa o objeto.

primeiro nome

th:object é usado para armazenar uma variável temporária, que só é válida na tag e seus descendentes, e vou apresentá-la em detalhes no "th attribute" no conteúdo a seguir.

2.1.3 Expressão de link
Seja uma referência de recurso estático ou uma solicitação de formulário, qualquer link pode usar uma expressão de link (@{…}).

A estrutura formal da expressão de link é a seguinte:

Solicitação sem referência: @{/xxx}
Solicitação com referência: @{/xxx(k1=v1,k2=v2)}

Por exemplo, use a expressão de link para importar a folha de estilo css, o código é o seguinte.

2.1.4 Expressões internacionalizadas Expressões de mensagem são geralmente usadas em cenários internacionalizados. A estrutura é a seguinte.

th:text="#{msg}"
Nota: Apenas entenda aqui, vamos apresentá-lo em detalhes nos próximos capítulos.

2.1.5 Expressão de referência de fragmento
A expressão de referência de fragmento é usada para se referir a outros fragmentos de modelo na página de modelo e a expressão suporta as 2 estruturas de sintaxe a seguir:

Recomendado: ~{templatename::fragmentname}
Compatível: ~{templatename::#id}

A estrutura gramatical acima é explicada da seguinte forma:

templatename: nome do modelo, Thymeleaf resolverá o caminho completo de acordo com o nome do modelo: /resources/templates/templatename.html, preste atenção ao caminho do arquivo.
fragmentname: nome do fragmento, Thymeleaf define blocos de código através da declaração th:fragment, a saber: th:fragment="fragmentname"
id: seletor de id HTML, ao usá-lo, adicione # na frente, seletor de classe não é suportado.
2.2º atributo
Thymeleaf também fornece um grande número de atributos, que podem ser usados ​​diretamente em tags HTML, e os atributos comumente usados ​​e seus exemplos são mostrados na tabela a seguir.
insira a descrição da imagem aqui
insira a descrição da imagem aqui
3. Extração de página pública Thymeleaf
Em projetos da web, geralmente existem alguns fragmentos de página pública (códigos duplicados), como a barra de navegação do cabeçalho, a barra de menu lateral e o js css público. Geralmente extraímos esses fragmentos de página pública e os armazenamos em uma página independente e, em seguida, somos referenciados por outras páginas conforme necessário, o que pode eliminar a duplicação de código e tornar a página mais concisa.
3.1 Extraindo páginas públicas
O Thymeleaf, como um mecanismo de modelo elegante e altamente sustentável, também suporta a extração e referência de páginas públicas. Podemos extrair fragmentos de página pública e armazená-los em uma página independente e usar o atributo th:fragment fornecido por Thymeleaf para nomear esses fragmentos de página pública extraídos.
O exemplo 1
extrai o fragmento de página comum e o armazena em commons.html, o código é o seguinte.

fragmento de página pública
3.2 Citando páginas públicas No Thymeleaf, podemos usar os três atributos a seguir para introduzir fragmentos de página pública na página atual. th:insert: Insira todo o fragmento do bloco de código na tag HTML usando o atributo th:insert; th:replace: Substitua todo o fragmento do bloco de código na tag HTML usando o atributo th:replace; th:include: Insira o bloco de código O conteúdo incluído do fragmento é inserido em tags HTML usando o atributo th:include.

O uso dos três atributos acima para introduzir fragmentos de página pode ser obtido das duas maneiras a seguir.
~{templatename::selector}: nome do modelo::selector
~{templatename::fragmentname}: nome do modelo::nome do fragmento
Normalmente, ~{} pode ser omitido e seu método de escrita inline é [[~{…}]] Ou [(~{…})], onde [[~{…}]] escapa caracteres especiais e [(~{…})] não.

Exemplo 2

  1. A introdução de fragmentos de página declarados em commons.html na página fragment.html pode ser realizada das seguintes maneiras.
------------------------------------------------
------------------------------------------------
  1. Inicie o Spring Boot, use um navegador para acessar fragment.html e visualize o código-fonte. Os resultados são os seguintes.
fragmento de página pública
fragmento de página pública
------------------------------------------------
fragmento de página pública
fragmento de página pública
------------------------------------------------
fragmento de página pública
fragmento de página pública
3.3 Passando parâmetros Quando o Thymeleaf extrai e importa fragmentos de páginas públicas, ele também pode passar parâmetros.As etapas gerais são as seguintes: Passar parâmetros; Usar parâmetros. 3.3.1 Parâmetros de entrada Ao nos referirmos a um fragmento de página pública, podemos passar parâmetros para o fragmento de página referenciado das duas maneiras a seguir: nome do modelo::nome do seletor ou nome do fragmento (parâmetro 1=valor do parâmetro 1, parâmetro 2=valor do parâmetro 2) nome do modelo:: nome do seletor ou nome do fragmento (valor do parâmetro 1, valor do parâmetro 2) Observação:

Se houver poucos parâmetros de entrada, o segundo método geralmente é usado para passar diretamente o valor do parâmetro para o fragmento da página;
se houver muitos parâmetros, é recomendável usar o primeiro método para especificar claramente o nome e o valor do parâmetro.
O código de exemplo é o seguinte:

------------------------------------------------
------------------------------------------------
3.3.2 Usando parâmetros Ao declarar um fragmento de página, podemos declarar e usar esses parâmetros no fragmento, por exemplo:

...

Inicie o Spring Boot, use um navegador para acessar fragment.html, o resultado é o mostrado abaixo.

Diagrama de efeito de passagem de parâmetro de página Thymeleaf
insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_64842782/article/details/125089695
Recomendado
Clasificación