Embora muitos desenvolvimentos agora adotem um modelo completamente separado de front-end e back-end, ou seja, o back-end fornece apenas interfaces de dados, e o front-end obtém dados por meio de solicitações de AJAX, que não requer um mecanismo de modelo. A vantagem desse método é que as extremidades dianteiras e traseiras são completamente separadas e, com a melhoria das ferramentas de engenharia frontal e estruturas de MVC nos últimos anos, o custo de manutenção desse modelo é relativamente menor. No entanto, esse modo não é propício ao SEO e será um pouco pior no desempenho. Existem também alguns cenários que o uso do mecanismo de modelo será mais conveniente, como modelos de email. Este artigo discute principalmente a integração da bota de primavera com os motores de modelo Thymeleaf, Freemaker e JSP.
1. Integre o tymeleaf
Etapa 1: Apresente o pacote JAR (iniciador correspondente a ThyMeleaf):
<Depencency> <voundId> org.springframework.boot </frugiD> <stifactId> primavera-boot-starter-tymymeleaf </sutifactId> </dependency>
Etapa 2: Configure o tymeleaf:
Primavera: Tommeleaf: Prefixo: ClassPath:/Modelos/Check-Template-Location: True Cache: False Sufixo: .html Encoding: UTF-8 Content-Type: Text/Html Modo: HTML5
Prefixo: especifique o diretório onde o modelo está localizado
Localização de verificação de verificação: verifique se o caminho do modelo existe
Cache: se deve cache, definido como false no modo de desenvolvimento, evite alterar o modelo e reiniciar o servidor. Definir -o como True Online pode melhorar o desempenho.
Codificação e tipo de conteúdo: todos devem estar familiarizados com isso, o que é consistente com os atributos correspondentes definidos no Servlets.
Modo: Consulte as instruções no site oficial, e isso é 2.x e 3.0. O pacote introduzido automaticamente neste artigo é 2.15.
O terceiro passo é escrever o arquivo de modelo Thymeleafd:
<! Doctype html> <html xmlns = "http://www.w3.org/1999/xhtml" xmlns: th = "http://www.thymeleaf.org"> <head> <meta Content = "Texto/html; charset = utf-8"/> </ad Head> <body> <h6> Modelo de TyMeled Model </h6> <tabela BGCOLOR = "#f0ffff"> <Tead> </thth the the the the the the the the the the the the the the the the the the thher </ $ {list} "> <tr> <td th: text =" $ {article.id} "> </td> <td th: text =" $ {article.title} "> </td> <td th: text =" $ {article.summary} "> </td> <td th: text =" $ {$ {article.summary} "> </td> <Td th: thext =" $ {$ {Article.summary} "> </td> <Td th:" </tbody> </ table> </body> </html>Como você pode ver, o tymeleaf é relativamente simples, e seu maior recurso é que a tag existe como um atributo de um elemento HTML. Ou seja, a página pode ser visualizada diretamente através do navegador, mas não há dados. Isso é muito conveniente para todos depurar.
Etapa 4: Configurar controlador:
@Controlador @requestmapping ("/artigo") classe pública articleController {@aUTowired Private ARTICLESVICE ARTICLEVERIDE; @RequestMapping ("/articlelist.html") public string getArticleList (modelo de modelo, título da string, @RequestParam (defaultValue = "10") Pagesize inteiro, @RequestParam (defaultValue = "1") Pagenum) {Intripset = (Pagenumum -1) * Pages * *; List <Trous> List = Articleservice.Getarticles (título, 1L, deslocamento, PageSize); Model.Addattribute ("List", List); retornar "Artigo/Articlelista"; }}Observe que a anotação usada aqui é @Controller, não @RestController, porque o @RestController converterá automaticamente o resultado de retorno em uma string.
Etapa 5 Veja os resultados
2. Integração entre a bota da primavera e o Freemarker
1. Introduzir o pacote JAR (partida correspondente ao Freemarker)
<Depencency> <PuerpId> org.springframework.boot </frugiD> <stifactId> Spring-boot-Starter-Freemarker </ArtifactId> </Dependency>
2. Configure o Freemarker:
Primavera: Freemarker: Modelo-carregador-path: ClassPath:/modelos/sufixo: .ftl content-type: text/html charset: utf-8 Configurações: number_format: '0. ##'
Além das configurações, outras opções de configuração são semelhantes ao ThymEleaf. settings will have an impact on some behaviors of freemarkers, such as date formatting, number formatting, etc. Interested students can refer to the instructions provided by the official website: https://freemarker.apache.org/docs/api/freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-
3. Escreva o arquivo de modelo Freemarker:
<html> <title> Lista de artigos </ititle> <body> <h6> Modelo de freemarker mecanismo </h6> <table> <Tead> <tr> <th> Número de série </th> <the> título </th> the Summary </the> <Th> Criação </s> </th> <#list listá {the> the </s> <td> $ {artigo.title} </td> <td> $ {artigo.summary} </td> <td> $ {artigo.CreateTime? String ('yyyy-mm-dd hh: mm: ss')} </td> </tr>4. Escreva controlador:
@Controlador @requestmapping ("/artigo") classe pública articleController {@aUTowired Private ARTICLESVICE ARTICLEVERIDE; @RequestMapping ("/list.html") public string getarticles (modelo modelo, título da string, @RequestParam (defaultValue = "10") Pagesize inteiro, número inteiro pagenum) {if (Pagesize == null) {Pagesize = 10; } if (pagenum == null) {pagenum = 1; } int offset = (Pagenum - 1) * PageSize; List <Trous> List = Articleservice.Getarticles (título, 1L, deslocamento, PageSize); Model.Addattribute ("List", List); retornar "Artigo/Lista"; }}5. Visite a página:
3. Sring Boot se integra ao JSP:
No desenvolvimento formal do projeto, os modelos JSP raramente são usados, portanto, a inicialização da primavera suporta o JSP não muito boa, por isso é relativamente mais complicado de configurar do que o timyleaf e o freemker.
O primeiro passo é apresentar o pacote JAR:
<Ependency> <voundid> javax.servlet </groupiD> <ArtifactId> jstl </stutifactId> </dependency> <pendecency> <voundiD> org.apache.tomcat.embed </groupid> <stifactId> tomcat-eMbed-jasper </artifactid> </dependência>
A primeira dependência do JSTL é usada para suportar expressões EL, e a segunda é usada para suportar o JSP. Observe que, se estiver em execução no TomCat externo, você precisará definir o escopo para fornecer para evitar conflitos de pacotes JAR.
Etapa 2: Crie manualmente o diretório WebApp:
Você precisa criar manualmente um diretório WebApp no diretório principal, com a estrutura da seguinte maneira:
Etapa 3 Configuração de força da estrada JSP:
Adicione a seguinte configuração no Application.yml:
Primavera: MVC: View: Prefix:/web-inf/jsp/sufixo: .jsp
Aqueles que entendem o MVC da primavera devem estar familiarizados com a configuração acima.
Etapa 4: Escreva a página JSP:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head> <title>Title</title></head><body> <table> <c:forEach var="article" itens = "$ {list}"> <tr> <td> $ {article.id} </td> <td> $ {artigo.title} </td> <td> $ {article.summary} </td> <td> $ {artigoEtapa 5: Escreva o controlador:
@RequestMapping ("/listJSP") public String getArticleListJSP (modelo de modelo, título da string, @RequestParam (defaultValue = "10") Pagesize inteiro, pagenum inteiro) {if (Pagesize == null) {Pagesize = 10; } if (pagenum == null) {pagenum = 1; } int offset = (Pagenum - 1) * PageSize; List <Trous> List = Articleservice.Getarticles (título, 1L, deslocamento, PageSize); Model.Addattribute ("List", List); retornar "artigos"; }Etapa 6 para acessar a página de resultados:
4. Resumo
No geral, a bota da primavera é amigável com o suporte ao Thymeleaf e do Freemaker, e a configuração é relativamente simples. No desenvolvimento real, a maioria deles é baseada principalmente nesses dois motores de modelo e existem poucos JSPs. Os JSPs agora podem ser usados mais durante o experimento ou estágio de aprendizado. A coisa mais problemática sobre a configuração do JSP é que não é como os dois primeiros. A declaração on -line é basicamente a mesma, mas há muitas declarações sobre a configuração do JSP, como se é necessário alterar o pacote JAR para um pacote de guerra? A dependência do JSP precisa ser definida para fornecer, etc. Isso depende principalmente se você deseja implantar o programa para o Tomcat externo no final ou executar o frasco diretamente? Como este artigo executa diretamente a classe de aplicativo em IDEA, essas operações não são necessárias.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.