2011-12-27 46 views
5

Tôi đang sử dụng liên kết this để nghiên cứu Spring MVC. Như mô tả dispatcher-servlet là ở trên xử lý tất cả các yêu cầu gửi đến.Bộ điều khiển nào là HandlerMapping trong Spring MVC?

Nó cũng mô tả rằng có một HandlerMapping và một Controller. Tuy nhiên, trong mã nguồn, chỉ có Bộ điều khiển được sử dụng. Đó là HandlerMapping sau đó? Không phải là một tệp riêng biệt?

Hay nó xuất hiện trong một số tình huống phức tạp khác?

Trả lời

9

Khi không có ánh xạ xử lý được chỉ định rõ ràng trong cấu hình, BeanNameUrlHandlerMapping được tạo và sử dụng theo mặc định.

Từ bài viết bạn liên kết:..

"Theo mặc định, DispatcherServlet sử dụng BeanNameUrlHandlerMapping để lập bản đồ theo yêu cầu đến Các BeanNameUrlHandlerMapping sử dụng tên đậu như các mẫu URL Kể từ BeanNameUrlHandlerMapping được sử dụng bởi mặc định, bạn không cần phải làm bất kỳ cấu hình riêng biệt nào cho điều này. "

8

Bộ điều khiển và HandlerMapping là hai thứ khác nhau trong Spring MVC. Bộ điều khiển là một lớp java thực tế được sử dụng để xử lý yêu cầu. Chúng tôi khai báo @Controller ở đầu định nghĩa lớp học. Ở đâu là HandlerMapping được xây dựng trong lớp khung công tác Spring. Có rất nhiều ánh xạ hanlder trong khung Spring như BeanNameUrlHandlerMapping, ControllerClassNameHandlerMapping vv Theo mặc định, BeanNameUrlHandlerMapping được sử dụng để ánh xạ yêu cầu. Lớp này được tìm kiếm trong tất cả các bộ điều khiển được sắp xếp để ánh xạ yêu cầu cụ thể với phương thức.

0

Xử lý ánh xạ hoạt động như trợ giúp cho servlet Dispatcher. Nó giúp xác định bean điều khiển thích hợp cho servlet Dispatcher. Đậu bản đồ xử lý mặc định là DefaultUrlHandlerMapping.

Nó xác định bean điều khiển theo url. Nó khớp với tên trong URL với bean điều khiển. Nếu nó khớp với nó sẽ trả về nó là DispatcherServlet và cuối cùng servlet thực thi phương thức nghiệp vụ của bộ điều khiển và trả về đối tượng ModelAndView quay lại servatcher dispatcher.

-1
  • DispatcherServlet tham khảo HandlerMapping và gọi trình điều khiển được liên kết với yêu cầu.
  • Việc Controller xử lý yêu cầu bằng cách gọi các phương thức dịch vụ thích hợp và trả về đối tượng ModeAndView cho DispatcherServlet.
  • Controller là loại xử lý cụ thể tức là Controller trả về các chế độ xem khác nhau dựa trên dữ liệu nhập của người dùng. Nhưng tất cả xử lý không phải là Controllers.
  • HandlerMapping: Chiến lược HandlerMapping được sử dụng để bản đồ yêu cầu máy khách HTTP tới một số bộ điều khiển xử lý (hoặc bộ điều khiển) và/hoặc phương pháp. Điều này được thực hiện dựa trên URL yêu cầu và phương thức HTTP, nhưng cũng có thể bao gồm các tham số yêu cầu, tiêu đề yêu cầu hoặc các yếu tố tùy chỉnh khác. ví dụ: SimpleUrlHandlerMapping hoặc BeanNameUrlHandlerMapping.
+0

Nếu hai câu hỏi có cùng câu trả lời, chúng cực kỳ có khả năng trùng lặp. Không đăng câu trả lời gấp đôi. Bỏ phiếu để đóng câu hỏi dưới dạng bản sao. –

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