ViewResolver用来将String类型的视图和Locale解析为View类型的视图。
public interface ViewResolver {
View resolveViewName(String viewName, Locale locale) throws Exception;
}
举例:
public class BeanNameViewResolver extends WebApplicationObjectSupport implements ViewResolver, Ordered {
private int order = Integer.MAX_VALUE; // default: same as non-Ordered
public void setOrder(int order) {
this.order = order;
}
public int getOrder() {
return this.order;
}
public View resolveViewName(String viewName, Locale locale) throws BeansException {
ApplicationContext context = getApplicationContext();
if (!context.containsBean(viewName)) {
// Allow for ViewResolver chaining...
return null;
}
return context.getBean(viewName, View.class);
}
}
原理就是根据viewName从Spring容器中查找Bean。
未完待续,,