04 "Tutorial de introducción a Spring Boot" Uso del motor de plantillas para desarrollar proyectos web
El motor de plantillas de Word suena un poco elevado.
De hecho, el motor de plantillas es una tecnología muy accesible. Por ejemplo, JSP, con el que todo el mundo puede estar familiarizado, es un motor de plantillas típico.
Cuando el navegador envía la solicitud al controlador, después de que el controlador procesa los datos, salta a la página del motor de plantillas, como JSP. Tenga en cuenta que mientras salta, los datos también se ensamblarán y se entregarán al motor de plantillas para su procesamiento.
El motor de plantillas generará dinámicamente una página HTML basada en los datos y las reglas del motor de plantillas y finalmente la devolverá al navegador para su visualización.
Utilizamos Spring Boot para desarrollar proyectos web, generalmente de dos formas.
El primer método es el método de servicio back-end, que también es el método principal actual. El front-end es una página HTML estática que solicita la interfaz back-end de Spring Boot a través de Ajax. Los datos devueltos por Spring Boot generalmente están en formato JSON y el front-end muestra los datos después de recibirlos.
La segunda forma es utilizar un motor de plantillas. Después de que la solicitud de front-end llega al controlador Spring Boot, el controlador procesa la solicitud y luego entrega los datos devueltos al motor de plantillas. El motor de plantillas es responsable de generar páginas HTML basadas en datos y finalmente devolver HTML al navegador.
Personalmente recomiendo el primer método. Permítanme hablar sobre varias ventajas de este método:
Este artículo trata sobre los motores de plantillas. Wang Po Cuando vendes melones, no puedes simplemente elogiar las fresas. Las páginas desarrolladas por motores de plantillas son más amigables para los motores de búsqueda y el SEO; también hay páginas simples que se pueden desarrollar más rápido si se utilizan motores de plantillas. Después de todo, el propósito del método de plantillas es reducir la duplicación y mejorar la eficiencia.
Spring Boot admite muchos tipos de motores de plantillas, los más comunes son FreeMarker, Thymeleaf y JSP.
Debido a que muchos usuarios utilizan estos motores de plantillas, presentaremos sus procesos de implementación uno por uno.
En cuanto a cuál es mejor o peor, juzgad vosotros mismos. Como dice el refrán: Una regla es corta, una pulgada es larga, cada uno toma lo que quiere y ¡todo crece!
En este artículo desarrollamos un ejemplo de proyecto de navegación de productos.
Aquí está mi experiencia personal: cuando trabaje en un proyecto o módulo, no comience a escribir código desde el principio, es mejor tomar una decisión antes de actuar.
Como programadores, en realidad somos el comandante en jefe de todo el mundo de la programación. Primero se debe planificar el plan general y luego llevar a cabo la implementación parcial. ¡Este método de desarrollo de tipo general nos facilita aclarar nuestras ideas y mejorar la eficiencia de la codificación!
Bien, pensemos en el proceso general de implementación de la instancia del proyecto de navegación del producto:
Proceso general
Como puede ver, primero establecimos el servidor de control. métodos y páginas, y luego implementar los detalles específicos. Esto permite que nuestro pensamiento mantenga coherencia e integridad, y se sentirá más fluido cuando trabajemos en proyectos con muchas páginas y métodos.
Seguimos el proceso general y utilizamos el motor de plantillas FreeMarker para implementar la función de exploración de productos.
Utilice Spring Initializr para crear un proyecto, seleccione Spring Boot versión 2.2.5, Group es com.imooc y Artifact es spring-boot-freemarker. Después de generar el proyecto, impórtelo al entorno de desarrollo de Eclipse. .
Introduce dependencias relacionadas con el proyecto Web y la plantilla de FreeMarker, el código es el siguiente:
Ejemplo:
Crea una clase de controlador, ya que es un producto -controlador relacionado, por lo que se llama GoodsController y el código es el siguiente:
Ejemplo:
Expliquemos la función de esta clase en detalle.
Creamos una nueva página de producto mercancías.ftl en el directorio de recursos/plantillas. No es necesario implementar funciones específicas primero. El código es el siguiente:
Ejemplo:
En este punto iniciamos el proyecto, luego accedemos a .imooc, el artefacto es spring-boot-thymeleaf y lo importamos al entorno de desarrollo de Eclipse después de generar el proyecto.
Introduce dependencias relacionadas con proyectos web y plantillas de Thymeleaf.
Ejemplo:
Cree la clase de controlador, GoodsController, Thymeleaf usa directamente HTML como página de plantilla, por lo que el código es el siguiente:
Ejemplo: p>
Creamos una nueva página de producto mercancías.html en el directorio de recursos/plantillas. No es necesario implementar funciones específicas primero. El código es el siguiente:
Ejemplo:
.En este punto iniciamos el proyecto y accedemos a .imooc. El artefacto es spring-boot-jsp. Después de generar el proyecto, lo importamos al entorno de desarrollo de Eclipse.
Introducir dependencias relacionadas con proyectos Web y plantillas JSP.
Ejemplo:
Cree una clase de controlador, GoodsController, con el siguiente código:
Ejemplo:
Agregue manualmente src/main/ webapp y Los subdirectorios son los siguientes, y se coloca un Goods.jsp debajo del directorio para realizar pruebas. Tenga en cuenta que este directorio es un directorio de código fuente de la carpeta fuente, no un directorio de carpeta normal.
estructura del proyecto spring-boot-jsp
Ejemplo:
Tenga en cuenta que también necesitamos agregar un analizador de vistas para permitir que la página JSP salte a la ubicación especificada. directorio.
Ejemplo:
En este punto iniciamos el proyecto y luego visitamos http://127.0.0.1:8080/goods para mostrar el contenido de la página correspondiente.
La clase de producto GoodsDo y la clase de servicio GoodsService no son diferentes de las anteriores y el código se publica directamente.
Ejemplo:
Ejemplo:
Bien, ahora nuestro controlador puede inyectar el componente de tipo GoodsService y luego llamar a su método.
Ejemplo:
En este punto podemos mostrar información del producto según las reglas de la plantilla según el motor de plantillas JSP.
Ejemplo:
Tenga en cuenta que generamos la información de la lista de productos a través de la sintaxis de la plantilla JSP.
Para conocer más reglas gramaticales del motor de plantillas JSP, los estudiantes interesados pueden consultar más información más adelante.
Inicie el proyecto, abra el navegador y visite http://127.0.0.1:8080/goods para ver los resultados.
Finalmente, deberías haber descubierto que el uso de FreeMarker y Thymeleaf es casi exactamente el mismo, y JSP aún necesita agregar algunos directorios y configuraciones manualmente.
Cada uno de los tres métodos tiene sus propias ventajas y desventajas. La sintaxis de la plantilla de FreeMarker es relativamente concisa, Thymeleaf puede usar HTML directamente como archivo de plantilla y JSP tiene una amplia base de usuarios.
Sin embargo, los tres métodos son solo un motor de plantilla. Convierten los datos devueltos por el controlador en una página HTML para su visualización. Básicamente, no hay diferencia. motor.