El archivo JSP no se procesa en la aplicación web Spring Boot

Tengo una aplicación web Spring Boot en funcionamiento utilizando Tomcat integrado (el valor predeterminado). Cuando sirve archivos JSP como parte de la representación de la vista que especifiqué en mi controlador, los JSP no se representan como tales y, en su lugar, imprime los contenidos. Por ejemplo:

index.jsp

    Test  

Cuando la vista se representa en los navegadores, se muestran los contenidos anteriores, en lugar de los contenidos esperados:

 Test 

Asegúrese de que su pom.xml especifique la dependencia Tomcat JSP de la siguiente manera:

  org.apache.tomcat.embed tomcat-embed-jasper provided  

Parece que Tomcat integrado trata el renderizado de JSP como opcional.

Como se menciona a continuación, este JAR a veces también es necesario:

  javax.servlet jstl provided  

(Agregué proporcionado dado que este JAR debe ser incluido por el contenedor de servlets.

No necesitaras una, sino dos dependencias (jasper y jstl) en tu pom.xml para que esto funcione.

    org.springframework.boot spring-boot-starter-web   org.apache.tomcat.embed tomcat-embed-jasper provided   javax.servlet jstl   

Para mí trabajó igual como lo mencionó Dan. Eliminar el scope proporcionado .

  org.apache.tomcat.embed tomcat-embed-jasper   javax.servlet jstl  

¡Gracias chicos!

Trabajó para mí también, pero tuve que eliminar

 provided  org.apache.tomcat.embed tomcat-embed-jasper  

Mejor puedes usar gradle (que está alcanzando a Maven). Use esta dependencia en el archivo build.gradle.

// Dependencia requerida para JSP

 providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper' 

Creo que te perdiste algo de configuración porque es fácil integrar JSP simplemente sigue los pasos a continuación

1 – dependencia tomcat-embad-jasper

  org.apache.tomcat.embed tomcat-embed-jasper provided  

2 – Agregar la configuración a continuación es application.properties

 spring.mvc.view.prefix: / spring.mvc.view.suffix: .jsp 

Eso todavía tiene dudas, luego échale un vistazo a este enlace

Spring Boot y la integración JSP

Resolví mi problema cuando, además de lo descrito anteriormente:

  org.apache.tomcat.embed tomcat-embed-jasper provided  

added ViewResolver:

 @Configuration @ComponentScan @EnableWebMvc public class SpringServletConfig { @Bean public InternalResourceViewResolver resolver() { InternalResourceViewResolver vr = new InternalResourceViewResolver(); vr.setPrefix("/WEB-INF/jsps/"); vr.setSuffix(".jsp"); return vr; } } 

from: ¿Por qué Spring MVC responde con un 404 e informa “No se encontró una asignación para la solicitud HTTP con URI […] en DispatcherServlet”?

Solo cambia la dependencia

   org.apache.tomcat.embed tomcat-embed-jasper provided  

a

   org.apache.tomcat.embed tomcat-embed-jasper  

Enfrenté el problema, como imprimir el nombre del archivo jsp en el navegador en lugar de su contenido.

Al agregar el siguiente fragmento para la representación de la página jsp en pom.xml, se procesa correctamente.

  org.apache.tomcat.embed tomcat-embed-jasper  

Configuración completa de Gradle para Spring-Boot con Spring-MVC y con el servidor Tomcat integrado:

build.gradle

 buildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'org.springframework.boot' //WEB-MVC compile 'org.springframework.boot:spring-boot-starter-web:1.5.8.RELEASE' compile 'org.apache.tomcat.embed:tomcat-embed-jasper:9.0.1' compile 'javax.servlet:jstl:1.2' 

App.class

 @SpringBootApplication public final class App { public static void main(final String[] args) { new SpringApplicationBuilder(App.class) .build(args) .run(); } @Bean public ViewResolver viewResolver() { final InternalResourceViewResolver r = new InternalResourceViewResolver(); r.setPrefix("/WEB-INF/jsp/"); r.setSuffix(".jsp"); return r; } } 

En ocasiones, tomcat-embed-jasper no está disponible, por lo que es necesario eliminarlo de la dependencia maven de tomcat-embed-jasper.

p.ej.

  org.apache.tomcat.embed tomcat-embed-jasper 

Si desea utilizar 1.5.8.RELEASE o similar, entonces, ejemplo ejecutable y su explicación está aquí https://www.surasint.com/spring-boot-jsp/

Solo necesitas esto en pom.xml

http://maven.apache.org/xsd/maven-4.0.0.xsd “> 4.0.0 org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE

 com.surasint.example spring-boot-02 1.0-SNAPSHOT war  1.8 1.8    org.springframework.boot spring-boot-starter-web    org.apache.tomcat.embed tomcat-embed-jasper provided    javax.servlet jstl      org.springframework.boot spring-boot-maven-plugin    

Y esto en application.properties

 spring.mvc.view.prefix: /WEB-INF/jsp/ spring.mvc.view.suffix: .jsp 

Luego, mantenga su jsp en la carpeta / WEB-INF / jsp /.

Este es el controlador.

 package com.surasint.example.web.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import java.util.Date; import java.util.Map; @Controller public class TestController { @GetMapping("/testjsp") public String list(Map model) { model.put("this_time",new Date().toString()); return "testjsp-view"; } } 
  appServlet org.springframework.web.servlet.DispatcherSe rvlet 1   appServlet /*  I took the * off so it was just from web.xml  appServlet org.springframework.web.servlet.DispatcherSe rvlet 1   appServlet /