No pom.xml
, adicione as seguintes dependências:
<!-- JSP-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
No application.properties
, adicione as seguintes linhas:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
Pronto! Agora coloque suas JSPs no diretório src/main/webapp/WEB-INF/views
.
Na documentação do Spring Boot, são listadas algumas template engines que, assim como a JSP, geram um HTML:
As template engines mencionadas anteriormente são completamente controladas pelo Spring Boot.
Já com as JSPs, é o Servlet Container que transforma a JSP em uma Servlet.
Por padrão, o Spring Boot tem um Tomcat embutido, sem a necessidade de instalação. Mas o tratamento das JSPs é feito pelo Tomcat, não pelo Spring Boot.
Além do Tomcat, o Spring Boot suporta o Jetty (um Servlet Container como o Tomcat) e o Undertow. O Undertow não oferece suporte a JSPs.
Algumas limitações de usar JSPs em projetos Spring Boot:
- Testes automatizados que usam
@WebMcTest
não conseguem obter o texto do HTML renderizado, limitando as verificações que podem ser feitas nos testes. - Páginas de erro customizadas não funcionam quando usamos JSPs com Spring Boot.