SpringBoot (4) -JSP integración y motor de plantillas

Integración JSP

En términos generales, SpringBoot no recomienda directamente el uso de páginas JSP, pero no descarta los escenarios que deben utilizarse en el trabajo real. Entonces, ¿cómo integra SpringBoot JSP? Debido a que el Tomcat incorporado de SpringBoot no integra el soporte para expresiones JSP o EL, el uso de JSP primero debe integrar las dependencias relevantes.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

Además de introducir las dependencias necesarias mencionadas anteriormente, también necesitamos configurar el diagrama de resolución de la vista. El resolutor de vista relacionado también se presenta en Spring MVC, como sigue:
Inserte la descripción de la imagen aquí


En SpringBoot, solo necesitamos configurar el archivo application.properties

spring.mvc.view.prefix=/WEB-INF/views/jsp/
spring.mvc.view.suffix=.jsp

Entonces, si necesita admitir múltiples resoluciones de vista en su proyecto, ¿cómo los configura? Si necesita admitir html y jsp, la forma que presentamos antes de aprender SpringMVC se configura en xml, de la siguiente manera:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Entonces, ¿cómo debemos configurar en SpringBoot? No podemos usar la configuración web. De hecho, es lo mismo que nuestra introducción anterior de SpringMVC que no usa la configuración xml y usa anotaciones. Los métodos de configuración de anotación previos utilizados en SpringMVC son los siguientes:
Inserte la descripción de la imagen aquí


A continuación, echemos un vistazo a cómo configurar capturas de pantalla de varias vistas en SpringBoot. Puede ver que se agrega un inspector, que en realidad es lo mismo que nuestra configuración en xml.
Inserte la descripción de la imagen aquí

public class HandleResourceViewExists extends InternalResourceView {

    @Override
    public boolean checkResource(Locale locale) {
        File file = new File(this.getServletContext().getRealPath("/") + getUrl());
        return file.exists(); //判断页面是否存在
    }
}

Entonces solo necesitamos crear el archivo de ruta correspondiente para acceder
Inserte la descripción de la imagen aquí

Nota: Si de acuerdo con la configuración anterior, cuando estamos probando, si el archivo html no se encuentra primero, y luego va al archivo jsp, entonces no hay problema, pero si el archivo html se encuentra y se accede directamente, informará un error, ¿por qué? ? Debido a que html es un recurso estático, también debemos configurarlo para permitir el acceso a recursos estáticos
Inserte la descripción de la imagen aquí




Motor de plantillas

Como mencionamos anteriormente, no se recomienda que SpringBoot use JSP. Sí, se recomienda que usemos un motor de plantillas para renderizar html. Entre ellos, SpringBoot recomienda encarecidamente usar thymeleaf. El uso de thymeleaf en SpringBoot es muy simple. Primero introduzca las dependencias

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Luego, debemos resourcescrear una templatescarpeta debajo del archivo de acuerdo con las especificaciones , de la siguiente manera:
Inserte la descripción de la imagen aquí

El contenido de index.html es el siguiente:

<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head lang="en">
    <meta charset="UTF-8"/>
</head>
<body>
<h1 th:text="${value}"/>
</body>
</html>

Luego creamos una solicitud de acceso en el Controlador, recuerde que necesitamos comentar la resolución de vista configurada anteriormente y luego probarla.

@Controller
//@RestController
public class DemoController {

    @RequestMapping("/index")
    public String testThymeleaf(ModelMap map) {
        map.addAttribute("value", "Hello World");
        return "index";
    }
}

Inserte la descripción de la imagen aquí

286 artículos originales publicados · Me gusta12 · Visitantes 10,000+

Supongo que te gusta

Origin blog.csdn.net/newbie0107/article/details/105280149
Recomendado
Clasificación