Cấu hình JSP views trong InternalResourceViewResolver với Spring Boot JAR file

Khuyến khích các bạn nên sử dụng JSP với WAR file, JAR file sẽ gặp nhiều vấn đề, một trong số đó mà mình đã gặp là deploy JAR file sử dụng Docker Container…

Các tập tin JSP, thông thường được sử dụng với InternalResourceViewResolver, có một số limitation khi sử dụng trong các ứng dụng Spring Boot. Theo như documentation của Spring Boot https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.developing-web-applications.embedded-container.jsp-limitations thì JSP file sẽ chỉ work với Tomcat và Jetty server và sẽ chỉ work là WAR file thôi, không work với JAR file. Thế nhưng, thực tế thì chúng ta cũng có cách để make it work với JAR file. Trong bài viết này, mình sẽ hướng dẫn các bạn cách cấu hình JSP views trong InternalResourceViewResolver với Spring Boot JAR file các bạn nhé!

Mình sẽ tạo mới một Spring Boot project:

Cấu hình JSP views trong InternalResourceViewResolver với Spring Boot JAR file

 

Cấu hình JSP views trong InternalResourceViewResolver với Spring Boot JAR file

và sử dụng InternalResourceViewResolver cho ví dụ này.

Mình sẽ thêm tomcat-embed-jasper dependency:

và một controller:

Tập tin view home.jsp với nội dung như sau:

sẽ không được tạo trong thư mục /src/main/webapp/WEB-INF/views nữa, Spring Boot khi build sẽ không include thư mục này trong JAR file. Các bạn cần tạo nó trong thư mục src/main/resources/META-INF/resources/WEB-INF/views như sau:

Cấu hình JSP views trong InternalResourceViewResolver với Spring Boot JAR file

Thư mục src/main/resources/META-INF/resources/ sẽ work giống như thư mục src/main/webapp đó các bạn!

Bây giờ thì mình sẽ khai báo trong application.properties như sau:

Kết quả khi chạy ứng dụng:

Cấu hình JSP views trong InternalResourceViewResolver với Spring Boot JAR file

Add Comment