Arquivo JSP não está renderizando no aplicativo da Web Spring Boot

Eu tenho um aplicativo da Web Spring Boot instalado e em execução usando o Tomcat incorporado (o padrão). Quando ele exibe arquivos JSP como parte da renderização da visualização especificada em meu controlador, os JSPs não estão sendo renderizados como tal e, em vez disso, imprimem o conteúdo. Por exemplo:

index.jsp

    Test  

Quando a exibição é renderizada nos navegadores, o conteúdo acima é exibido, em vez do conteúdo esperado:

 Test 

Certifique-se de que seu pom.xml especifique a dependência do Tomcat JSP da seguinte maneira:

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

Parece que o Tomcat integrado trata a renderização JSP como opcional.

Conforme mencionado abaixo, esse JAR às vezes também é necessário:

  javax.servlet jstl provided  

(Eu adicionei desde que este JAR deve ser incluído pelo contêiner servlet.

Você não precisará de uma, mas de duas dependencies (jasper e jstl) em seu pom.xml para que isso funcione.

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

Para mim funcionou da mesma forma que Dan mencionou. Removendo o escopo fornecido .

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

Obrigado rapazes!

Trabalhei para mim também, mas tive que remover

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

Melhor você pode usar o gradle (que está alcançando o Maven). Use essa dependência no arquivo build.gradle.

// Dependência necessária para JSP

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

Acho que você perdeu alguma configuração porque é fácil integrar o JSP apenas siga os passos abaixo

1 – dependência tomcat-embad-jasper

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

2 – Adicionar abaixo da configuração é application.properties

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

Isso ainda tem alguma dúvida então confira abaixo link

Spring Boot e Integração JSP

Resolvi meu problema quando além de 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 que o Spring MVC responde com um erro 404 e relata “Nenhum mapeamento […] encontrado para solicitação HTTP com URI […] em DispatcherServlet”?

Apenas mude a dependência

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

para

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

Eu enfrentei o problema como imprime o nome do arquivo jsp no navegador em vez de seu conteúdo.

Adicionando o trecho abaixo para renderização da página jsp em pom.xml, ele renderiza corretamente.

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

Configuração completa do gradle para Spring-Boot com Spring-MVC e com o servidor Tomcat incorporado:

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; } } 

Às vezes, o tomcat-embed-jasper não está disponível, portanto, é necessário removê-lo da dependência do maven do tomcat-embed-jasper.

por exemplo.

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

Se você quiser usar 1.5.8.RELEASE ou similar, então, o exemplo executável e sua explicação estão aqui https://www.surasint.com/spring-boot-jsp/

Você só precisa disso em 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    

E isso em application.properties

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

Então você mantém seu jsp na pasta / WEB-INF / jsp /.

Este é o 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 /