Mình đã giới thiệu với các bạn về InternalResourceViewResolver trong Spring MVC trong bài viết trước. Vậy trong Spring Boot thì chúng ta sẽ sử dụng InternalResourceViewResolver như thế nào? Trong bài viết này, chúng ta hãy cùng tìm hiểu nhé các bạn!
Đầu tiên, mình sẽ tạo mới một Spring Boot project với spring-boot-starter-web như sau:
Bạn nào chưa biết cách tạo Spring Boot project trong Spring Tool Suite thì có thể tham khảo bài viết này.
Trong ví dụ này, chúng ta sẽ chạy ứng dụng sử dụng Tomcat server nhưng do khi generate Spring Boot project, project này không include thư viện tomcat-embed-jasper để render các tập tin JSP, do đó chúng ta cần thêm dependency cho thư viện này như sau:
1 2 3 4 5 |
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> |
Để sử dụng InternalResourceViewResolver trong Spring Boot, có 3 việc chúng ta cần phải làm:
Đầu tiên, chúng ta cần có các tập tin view.
Trong ví dụ này, mình sẽ tạo mới một tập tin view tên là home.jsp nằm trong thư mục /src/main/webapp/WEB-INF/views:
với nội dung như sau:
1 |
Hello World! |
Tiếp theo, chúng ta sẽ cần định nghĩa request có khai báo sử dụng tên tập tin view của chúng ta.
Để làm điều này, mình sẽ tạo mới một controller có tên là HelloController nằm trong package com.huongdanjava.springboot như sau:
với một phương thức hello() định nghĩa một request “/hello” có sử dụng tên view “home” như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package com.huongdanjava.springboot; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/hello") public String home() { return "home"; } } |
Bước cuối cùng chúng ta cần làm đó là khai báo InternalResourceViewResolver trong Spring container.
Không cần phải cấu hình phức tạp như trong Spring MVC, Spring Boot hỗ trợ chúng ta một số property để cấu hình InternalResourceViewResolver. Các bạn chỉ cần mở tập tin application.properties nằm trong thư mục /src/main/resources và khai báo những property sau:
1 2 |
spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp |
Lúc này, Spring Boot sẽ sử dụng những property trên để map tên view với các tập tin view nằm trong thư mục /WEB-INF/views/.
Bây giờ thì chạy thôi các bạn.
Kết quả: