2009-10-21 45 views
29

Có cách nào để xây dựng các cuộc gọi Spring Web tiêu thụ và tạo ra application/json yêu cầu và phản hồi có định dạng tương ứng không?Spring 3 JSON với MVC

Có lẽ đây không phải là Spring MVC, tôi không chắc chắn. Tôi đang tìm thư viện Spring hoạt động theo cách tương tự với Jersey/JSON. Trường hợp tốt nhất sẽ là nếu có một chú thích mà tôi có thể thêm vào các lớp Bộ điều khiển để biến chúng thành các cuộc gọi dịch vụ JSON.

Hướng dẫn hiển thị cách xây dựng Dịch vụ web mùa xuân bằng JSON sẽ tuyệt vời.


EDIT: Tôi đang tìm kiếm một cách tiếp cận dựa trên chú thích (tương tự như Jersey).

EDIT2: Giống như Jersey, tôi đang tìm hỗ trợ REST (POST, GET, DELETE, PUT).

EDIT3: Tốt nhất là, đây sẽ là mục nhập pom.xml và một số thông tin về cách sử dụng spring-js với jackson Bản gốc của phiên bản Spring.

+0

Chủ đề tương tự được nêu tại đây: http://stackoverflow.com/questions/658936/is-there-a-library-to-convert-java-pojos-to-and-from-json-and-xml –

+0

dma_k - câu hỏi đó thực sự không giống như vậy. Câu hỏi đó hỏi về việc chuyển đổi giữa các đối tượng java và JSON, câu hỏi này yêu cầu cụ thể cách sử dụng Spring MVC để gửi và nhận các tin nhắn JSON. – stevedbrown

Trả lời

31

Trong trường hợp ppl khác đến đây sau: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/ là liên kết hữu ích nhất đối với tôi. Điều đó cuối cùng đã làm cho tôi hiểu mô hình (sau ít hơn một ngày tìm kiếm).

+2

Điều này tốt hơn nhiều nếu bạn đã ở Spring 3. Dự án Spring-JSON là rất tốt, nhưng tiếc là nó dựa vào Spring 2.5. –

17

Bạn chắc chắn có thể có bộ điều khiển trả về Chế độ xem trong đầu ra JSON. Hãy xem the Spring-JSON project.

Để tiêu thụ các yêu cầu trong JSON, tôi cho rằng bạn chỉ muốn một bộ điều khiển chuyển thông số yêu cầu đến thư viện JSON có thể phân tích cú pháp dữ liệu?

+1

Đây không phải là điều tôi muốn. Nó sẽ hoạt động như Jersey, tôi không muốn đưa mọi thứ ra, bộ điều khiển MVC sẽ được gói với một lớp khía cạnh JSON (có thể thông qua các chú thích) cho phép nó gửi và nhận JSON. Dự án Spring-JSON thực hiện một nửa trong số đó (gửi) nhưng không phải là nửa kia. – stevedbrown

4

Không có cách nào đóng gói sẵn để làm những gì bạn muốn như Jersey được tích hợp độc đáo với mùa xuân qua Jersey-Spring API do đó thực sự không có lý do để tái phát minh ra bánh xe.

+0

Tôi hiện đang sử dụng Jersey và nó tốt. Thành thật mà nói, tôi không tìm thấy sự tích hợp mùa xuân tất cả hấp dẫn, mà không thực sự là một vấn đề lớn. Giống như Spring MVC so với Struts, tôi không thực sự mong đợi nhiều thay đổi với chức năng Spring Rest JSON, tôi chỉ đang cố gắng tìm ra nếu nó thực sự tồn tại để tôi có thể thử nó. – stevedbrown

0

Dường như khuôn khổ DWR trông rất gần với những gì bạn muốn nhận.

0

Bạn có thể định cấu hình trình chặn đánh chặn Spring MVC qua handler mappings và sau đó sử dụng ánh xạ để chuyển dữ liệu trả về thành JSON. Cấu hình trình xử lý có thể được thực hiện bằng xml (không cần biên dịch lại) và điều này có thể hoàn toàn minh bạch đối với phần còn lại của ứng dụng.

Nó khá dễ dàng để chú thích bộ điều khiển với một số chú thích, và sau đó treo lên quá trình khởi động BeanFactory để đăng ký bộ điều khiển trong một số quá trình ánh xạ xử lý.

Tôi đã sử dụng phương pháp này để chuyển đổi kết quả từ bộ điều khiển lò xo thành các cuộc gọi GWT RPC.

Bạn cũng có thể sử dụng Spring AOP để chặn các cuộc gọi phương thức điều khiển và bỏ/quấn các yêu cầu từ/đến JSON.

2

Vì spring-mvc 3.0 hỗ trợ chính thức cho việc chuyển tiếp Ajax bằng JSON được cung cấp như một phần của Spring MVC.Điều này bao gồm hỗ trợ tạo ra các phản hồi JSON và ràng buộc các yêu cầu JSON bằng cách sử dụng mô hình lập trình Spring MVC @Controller.

thấy here

2

Tính năng này hiện là một phần của Spring kể từ phiên bản 3.0. Bạn có thể chỉ cần sử dụng chú thích @ResponseBody để chỉ định rằng bạn muốn giá trị trả về từ các phương thức xử lý yêu cầu của bạn được tuần tự hóa thành JSON và được gửi làm phần trả lời. Xem http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/

Các vấn đề liên quan