Uso do modelo thymeleaf
1. Visão geral do timeleaf
Simplificando, o Thymeleaf é um mecanismo de modelo semelhante ao Velocity e FreeMarker , que pode substituir completamente o JSP . Comparado com outros mecanismos de gabarito, possui os seguintes três recursos muito atraentes:
1. O Thymeleaf pode ser executado em ambientes em rede e não em rede, ou seja, permite que os artistas visualizem o efeito estático da página no navegador e também permite que os programadores visualizem o efeito dinâmico da página com dados no servidor. Isso ocorre porque ele suporta o protótipo HTML e, em seguida, adiciona atributos adicionais na tag HTML para obter o modelo + modo de exibição de dados. O navegador ignorará os atributos de marca indefinidos ao interpretar html, para que o modelo thymeleaf possa ser executado estaticamente; quando os dados forem retornados à página, a marca Thymeleaf substituirá dinamicamente o conteúdo estático, para que a página seja exibida dinamicamente.
2. Recursos do Thymeleaf prontos para uso. Ele fornece dois dialetos, padrão e primavera.Você pode aplicar modelos diretamente para obter efeitos de expressão JSTL e OGNL, evitando o problema de aplicar modelos, o jstl e alterar tags todos os dias. Ao mesmo tempo, os desenvolvedores também podem estender e criar dialetos personalizados.
3. O Thymeleaf fornece o dialeto padrão da primavera e um módulo opcional perfeitamente integrado ao Spring MVC, que pode implementar rapidamente funções como vinculação de formulários, editor de atributos e internacionalização.
Local de armazenamento da página de modelo Thymeleaf do projeto Spring Boot
Exibir ThymeleafAutoConfiguration
Exibir ThymeleafProperties
thymeleaf configurado prefixo e de sufixo de padrão prefixo caminho de classe: / modelos / sufixo .html
4. Vá para a página Thymeleaf através do Controller
http: // localhost: 8080 / index / hello
访问 http: // localhost: 8080 / index / userManager
Como modificar o endereço de armazenamento padrão do Thymeleaf
Gramática relacionada ao timeleaf
1, expressão simples
1. A expressão da variável: $ {...} é tomada como o valor no campo Model
2. Selecione a expressão da variável: * {...}
3. Expressão da informação: # {...} # aceite o valor no contêiner I OC
4 链接 链接 URL: @ {...} <a href="user/query.action"> <a th: href = "@ {user / query.action}" Href Actio Src
2, literalmente th: texto
1. Texto e texto: 'um texto', 'Outro!',…
2. Número de palavras: 0, 34, 3.0, 12.3, ...
3. Constantes booleanas: verdadeiro, falso
4. Texto em branco: nulo
5. Marca de texto: um, algum texto, principal, ...
3. Processamento de texto
1. Concatenação de strings:
2. Substituição de texto: | O nome é $ {name} |
4. Objetos de expressão básica
1. #ctx: objeto de contexto
2. #vars: variáveis de contexto
3. #locale: localidade do contexto
4. #httpServletRequest: (apenas no contexto da Web) objeto HttpServletRequest
5. #httpSession: (apenas no contexto da Web) objeto HttpSession.
<: <Span th: text = "$ {# locale.country}"> CN </span>.
5. Objetos utilitários
#dates: um método prático de java.util. Objetos: formato da data, extração de componentes, etc.
#calendars: semelhante ao #date, mas para java.util. Objeto de calendário
#numbers: uma maneira prática de formatar objetos digitais.
#strings: Métodos práticos de objetos de string: incluindo beginWith, anexar / anexar etc.
#objects: objetos para métodos práticos.
#bools: métodos práticos para avaliação booleana.
#arrays: métodos práticos para matrizes.
#lists: coleção de listas.
#sets: definir coleção.
#maps: coleção de mapas.
#aggregates: método utilitário para criar agregações em matrizes ou coleções.
#messages: método utilitário para obter informações externas dentro de expressões variáveis, da mesma maneira que elas usarão a sintaxe # {…}
#ids: método utilitário para lidar com atributos de ID que podem ser duplicados (por exemplo, devido à iteração).
Thymeleaf lê os objetos em xxx.properti e s [Entendendo] Internacionalização
Modifique um pplication.properties
Crie howStudent.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/layui/css/layui.css" media="all">
</head>
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>学生信息</legend>
</fieldset>
<div style="padding: 20px; background-color: #F2F2F2;">
<div class="layui-row layui-col-space15">
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-body">
<span>学生编号:</span><span th:text="#{student.id}"></span><br>
<span>学生姓名:</span><span th:text="#{student.name}"></span><br>
<span>学生年龄:</span><span th:text="#{student.age}"></span><br>
<span>学生性别:</span><span th:text="#{student.sex}"></span><br>
<span>学生生日:</span><span th:text="#{student.birth}"></span><br>
<span>学生电话:</span><span th:text="#{student.phone}"></span><br>
</div>
</div>
</div>
</div>
</div>
<!--<div th:text="#{welcome('小明','WHSXT')}">-->
</div>
<script src="/layui/layui.js" charset="utf-8"></script>
</body>
</html>