SpringMVC configurar thymeleaf ambas plantillas y motor JSP

Descripción del problema

En mi mente, es el uso thymeleaf dominante, porque siempre quería saber springboot se recomienda al final lo que es bueno. En proyecto springboot general, la introducción directa de thymeleaf dependencias se puede resolver puntos de vista, pero en general el proyecto de primavera también necesitamos una cierta configuración manual, por lo que era un problema, la forma de integrar múltiples motores de plantilla juntos.

soluciones

  1. La introducción de thymeleaf dependiente
        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring3 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring3</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>

thymeleaf versión 2 y 3 van a hacer, mejor función 3 puntos.
Además tymeleaf-Spring3 o thymeleaf-Spring4 también de uso gratuito.
2. Configurar vista SpringMVC para resolver
la clave es este paso, este paso es la versión en línea es más. Probablemente analizado lo que son las siguientes dos situaciones:

  • Las páginas JSP y una página html vistas primer caso se encuentran en diferentes carpetas por debajo
  • El segundo caso dos tipos de la misma página al mismo tiempo hay una vista de carpetas

Configuración primera mirada en el primer caso:
aquí se puede referir a la oficial thymeleaf una dirección de configuración de tienda de mascotas es
thymeleaf ejemplos de configuración oficiales

Aquí es nuestro ejemplo:

    <bean id="templateResolver"
          class="org.thymeleaf.spring3.templateresolver.SpringResourceTemplateResolver">
        <property name="prefix" value="WEB-INF/" />
        <property name="suffix" value=".html" />
        <property name="templateMode" value="HTML5" />
        <property name="cacheable" value="false" />
        <property name="characterEncoding" value="UTF-8"/>
    </bean>

    <bean id="templateEngine"
          class="org.thymeleaf.spring3.SpringTemplateEngine">
        <property name="templateResolver" ref="templateResolver" />
    </bean>
    <!--  配置多个视图解析-->
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">

        <property name="viewResolvers">
            <list>
                <!--used thymeleaf  -->
                <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
                    <property name="characterEncoding" value="UTF-8"/>
                    <property name="templateEngine" ref="templateEngine" />
                    <property name="viewNames" value="html/*"/>
                    <property name="order" value="2" />
                </bean>
                <!-- used jsp -->
                <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <property name="prefix" value="/WEB-INF/"/>
                    <property name="suffix" value=".jsp"/>
                    <property name="viewNames" value="jsp/*"/>
                    <property name="order" value="1" />
                </bean>

            </list>
        </property>
    </bean>

Puntos clave:
<property name="prefix" value="/WEB-INF/"/>
<property name="viewNames" value="/*"/>

Entonces dijo la configuración del segundo caso:

Es decir, se extiende sobre una primera configuración, el mismo que el valor de prefijo

<bean id="templateResolver"
          class="org.thymeleaf.spring3.templateresolver.SpringResourceTemplateResolver">
        <property name="prefix" value="WEB-INF/views/" />
        <property name="templateMode" value="HTML5" />
        <property name="cacheable" value="false" />
        <property name="characterEncoding" value="UTF-8"/>
    </bean>

    <bean id="templateEngine"
          class="org.thymeleaf.spring3.SpringTemplateEngine">
        <property name="templateResolver" ref="templateResolver" />
    </bean>
    <!--  配置多个视图解析-->
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">

        <property name="viewResolvers">
            <list>
                <!--used thymeleaf  -->
                <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
                    <property name="characterEncoding" value="UTF-8"/>
                    <property name="templateEngine" ref="templateEngine" />
                    <property name="viewNames" value="*.html" />
                    <property name="order" value="1" />
                </bean>
                <!-- used jsp -->
                <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <property name="prefix" value="/WEB-INF/views/"/>
                    <property name="viewNames" value="*.jsp"/>
                    <property name="order" value="2" />
                </bean>

            </list>
        </property>
    </bean>

Diferentes lugares aquí:
<property name="viewNames" value="*.html"/>
<property name="viewNames" value="*.jsp"/>

Para no termina aquí, cómo tenemos que devolver la capa del controlador?

El primer caso return "jsp/abc" || return "thymeleaf/abc"
del segundo casoreturn "abc.jsp" || return "abc.html"

Publicado 22 artículos originales · ganado elogios 9 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_19408473/article/details/71214972
Recomendado
Clasificación