Như được mô tả trong tài liệu, BeanNameViewResolver
giải quyết View
s được khai báo là hạt. Thông thường bạn cần nó cho một số quan điểm mục đích đặc biệt.
Hãy tưởng tượng, ví dụ: một trong các bộ điều khiển của bạn sẽ hiển thị bảng tính Excel. Vì vậy, bạn phân lớp AbstractExcelView
và thực hiện logic tùy chỉnh của bạn hiển thị một bảng tính dựa trên giá trị mô hình:
public class MyExcelView extends AbstractExcelView { ... }
và tuyên bố nó như là một bean:
<bean id = "myExcelView" class = "MyExcelView" />
Sau đó tuyên bố một BeanNameViewResolver
làm cho nó có sẵn để điều khiển: khi bộ điều khiển trả về ModelAndView
với tên chế độ xem myExcelView
, bảng tính của bạn sẽ được hiển thị.
BeanNameViewResolver
thường được sử dụng kết hợp với một số phân giải xem khác để xử lý quan điểm "thường xuyên" (do đó nếu BeanNameViewResolver
không thể tìm thấy một cái nhìn, resolver khác cố gắng để tìm thấy nó):
<bean class = "...BeanNameViewResolver">
<property name = "order" value = "0" />
</bean>
<bean class = "...InternalResourceViewResolver">
<property name = "order" value = "1" />
...
</bean>
+1 để được nhanh hơn tôi và có một số chi tiết blob của tôi không có :) –
+1 cho lời giải thích tốt. Một vài câu hỏi: 1) beannameviewresolver có cần phải an toàn không? 2) là internalresourceviewresolver thread-safe? – shrini1000
giải thích rất tốt – Krishna