Sử dụng annotation @RequestMapping với thuộc tính produces trong Spring MVC

Để quy định định dạng dữ liệu sẽ trả về cho người dùng khi họ request một URL nào đó, trong Spring MVC chúng ta có thể sử dụng annotation @RequestMapping với thuộc tính produces. Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này nhé các bạn!

Đầu tiên, mình sẽ tạo một Maven project để làm ví dụ:

Sử dụng annotation @RequestMapping với thuộc tính produces trong Spring MVC

Bạn nào chưa biết cách tạo thì làm theo hướng dẫn của bài viết này nhé các bạn!

Các dependencies mặc định mình đã thay đổi version như sau:

Để chạy project này, mình sẽ sử dụng Maven Jetty Pluggin:

Bây giờ, mình sẽ định nghĩa mới một Controller nằm trong package com.huongdanjava.springmvcrequestmapping với tên gọi là HelloController. Controller này định nghĩa 1 request và khi người dùng request tới, nó sẽ trả về đoạn text “Hello World!”. Nội dung của HelloController như sau:

Lúc này, nếu các bạn sử dụng Postman để kiểm tra kết quả thì các bạn sẽ thấy request trả về dòng chữ “Hello World!” với header như sau:

Sử dụng annotation @RequestMapping với thuộc tính produces trong Spring MVC

Định dạng dữ liệu trả về ở dạng text/plain bình thường.

Nếu bây giờ, các bạn muốn dữ liệu trả về ở định dạng JSON thì các bạn có thể thêm thuộc tính produces trong annotation @RequestMapping với giá trị là “application/json” như sau:

Khi đó, chúng ta sẽ nhận kết quả với header như sau:

Sử dụng annotation @RequestMapping với thuộc tính produces trong Spring MVC

Như các bạn thấy, content-type trả về lúc này là application/json chứ không còn là text/plain ở trên nữa. Tất nhiên, nếu muốn, đoạn text trả về các bạn hãy thay đổi để nó phù hợp với định dạng JSON nhé!


4.8/5 - (4 bình chọn)

Add Comment