类org.springframework.web.servlet.view.ViewResolverComposite源码实例Demo

下面列出了怎么用org.springframework.web.servlet.view.ViewResolverComposite的API类实例代码及写法,或者点击链接到github查看源代码。

/**
 * Register a {@link ViewResolverComposite} that contains a chain of view resolvers
 * to use for view resolution.
 * By default this resolver is ordered at 0 unless content negotiation view
 * resolution is used in which case the order is raised to
 * {@link org.springframework.core.Ordered#HIGHEST_PRECEDENCE
 * Ordered.HIGHEST_PRECEDENCE}.
 * <p>If no other resolvers are configured,
 * {@link ViewResolverComposite#resolveViewName(String, Locale)} returns null in order
 * to allow other potential {@link ViewResolver} beans to resolve views.
 * @since 4.1
 */
@Bean
public ViewResolver mvcViewResolver(ContentNegotiationManager mvcContentNegotiationManager) {
	ViewResolverRegistry registry = new ViewResolverRegistry(
			mvcContentNegotiationManager, this.applicationContext);
	configureViewResolvers(registry);

	if (registry.getViewResolvers().isEmpty() && this.applicationContext != null) {
		String[] names = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
				this.applicationContext, ViewResolver.class, true, false);
		if (names.length == 1) {
			registry.getViewResolvers().add(new InternalResourceViewResolver());
		}
	}

	ViewResolverComposite composite = new ViewResolverComposite();
	composite.setOrder(registry.getOrder());
	composite.setViewResolvers(registry.getViewResolvers());
	if (this.applicationContext != null) {
		composite.setApplicationContext(this.applicationContext);
	}
	if (this.servletContext != null) {
		composite.setServletContext(this.servletContext);
	}
	return composite;
}
 
源代码2 项目: spring-analysis-note   文件: MvcNamespaceTests.java
@Test
public void testContentNegotiationManager() throws Exception {
	loadBeanDefinitions("mvc-config-content-negotiation-manager.xml");

	RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
	ContentNegotiationManager manager = mapping.getContentNegotiationManager();

	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo.xml");
	NativeWebRequest webRequest = new ServletWebRequest(request);
	assertEquals(Collections.singletonList(MediaType.valueOf("application/rss+xml")),
			manager.resolveMediaTypes(webRequest));

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());

	ViewResolver resolver = compositeResolver.getViewResolvers().get(0);
	assertEquals(ContentNegotiatingViewResolver.class, resolver.getClass());
	ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolver;
	assertSame(manager, cnvr.getContentNegotiationManager());
}
 
源代码3 项目: spring-analysis-note   文件: MvcNamespaceTests.java
@Test
public void testViewResolutionWithContentNegotiation() throws Exception {
	loadBeanDefinitions("mvc-config-view-resolution-content-negotiation.xml");

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals(1, compositeResolver.getViewResolvers().size());
	assertEquals(Ordered.HIGHEST_PRECEDENCE, compositeResolver.getOrder());

	List<ViewResolver> resolvers = compositeResolver.getViewResolvers();
	assertEquals(ContentNegotiatingViewResolver.class, resolvers.get(0).getClass());
	ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolvers.get(0);
	assertEquals(6, cnvr.getViewResolvers().size());
	assertEquals(1, cnvr.getDefaultViews().size());
	assertTrue(cnvr.isUseNotAcceptableStatusCode());

	String beanName = "contentNegotiationManager";
	DirectFieldAccessor accessor = new DirectFieldAccessor(cnvr);
	ContentNegotiationManager manager = (ContentNegotiationManager) accessor.getPropertyValue(beanName);
	assertNotNull(manager);
	assertSame(manager, this.appContext.getBean(ContentNegotiationManager.class));
	assertSame(manager, this.appContext.getBean("mvcContentNegotiationManager"));
}
 
/**
 * Register a {@link ViewResolverComposite} that contains a chain of view resolvers
 * to use for view resolution.
 * By default this resolver is ordered at 0 unless content negotiation view
 * resolution is used in which case the order is raised to
 * {@link org.springframework.core.Ordered#HIGHEST_PRECEDENCE
 * Ordered.HIGHEST_PRECEDENCE}.
 * <p>If no other resolvers are configured,
 * {@link ViewResolverComposite#resolveViewName(String, Locale)} returns null in order
 * to allow other potential {@link ViewResolver} beans to resolve views.
 * @since 4.1
 */
@Bean
public ViewResolver mvcViewResolver() {
	ViewResolverRegistry registry = new ViewResolverRegistry(
			mvcContentNegotiationManager(), this.applicationContext);
	configureViewResolvers(registry);

	if (registry.getViewResolvers().isEmpty() && this.applicationContext != null) {
		String[] names = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
				this.applicationContext, ViewResolver.class, true, false);
		if (names.length == 1) {
			registry.getViewResolvers().add(new InternalResourceViewResolver());
		}
	}

	ViewResolverComposite composite = new ViewResolverComposite();
	composite.setOrder(registry.getOrder());
	composite.setViewResolvers(registry.getViewResolvers());
	if (this.applicationContext != null) {
		composite.setApplicationContext(this.applicationContext);
	}
	if (this.servletContext != null) {
		composite.setServletContext(this.servletContext);
	}
	return composite;
}
 
源代码5 项目: java-technology-stack   文件: MvcNamespaceTests.java
@Test
public void testContentNegotiationManager() throws Exception {
	loadBeanDefinitions("mvc-config-content-negotiation-manager.xml");

	RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
	ContentNegotiationManager manager = mapping.getContentNegotiationManager();

	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo.xml");
	NativeWebRequest webRequest = new ServletWebRequest(request);
	assertEquals(Collections.singletonList(MediaType.valueOf("application/rss+xml")),
			manager.resolveMediaTypes(webRequest));

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());

	ViewResolver resolver = compositeResolver.getViewResolvers().get(0);
	assertEquals(ContentNegotiatingViewResolver.class, resolver.getClass());
	ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolver;
	assertSame(manager, cnvr.getContentNegotiationManager());
}
 
源代码6 项目: java-technology-stack   文件: MvcNamespaceTests.java
@Test
public void testViewResolutionWithContentNegotiation() throws Exception {
	loadBeanDefinitions("mvc-config-view-resolution-content-negotiation.xml");

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals(1, compositeResolver.getViewResolvers().size());
	assertEquals(Ordered.HIGHEST_PRECEDENCE, compositeResolver.getOrder());

	List<ViewResolver> resolvers = compositeResolver.getViewResolvers();
	assertEquals(ContentNegotiatingViewResolver.class, resolvers.get(0).getClass());
	ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolvers.get(0);
	assertEquals(6, cnvr.getViewResolvers().size());
	assertEquals(1, cnvr.getDefaultViews().size());
	assertTrue(cnvr.isUseNotAcceptableStatusCode());

	String beanName = "contentNegotiationManager";
	DirectFieldAccessor accessor = new DirectFieldAccessor(cnvr);
	ContentNegotiationManager manager = (ContentNegotiationManager) accessor.getPropertyValue(beanName);
	assertNotNull(manager);
	assertSame(manager, this.appContext.getBean(ContentNegotiationManager.class));
	assertSame(manager, this.appContext.getBean("mvcContentNegotiationManager"));
}
 
源代码7 项目: lams   文件: WebMvcConfigurationSupport.java
/**
 * Register a {@link ViewResolverComposite} that contains a chain of view resolvers
 * to use for view resolution.
 * By default this resolver is ordered at 0 unless content negotiation view
 * resolution is used in which case the order is raised to
 * {@link org.springframework.core.Ordered#HIGHEST_PRECEDENCE
 * Ordered.HIGHEST_PRECEDENCE}.
 * <p>If no other resolvers are configured,
 * {@link ViewResolverComposite#resolveViewName(String, Locale)} returns null in order
 * to allow other potential {@link ViewResolver} beans to resolve views.
 * @since 4.1
 */
@Bean
public ViewResolver mvcViewResolver() {
	ViewResolverRegistry registry = new ViewResolverRegistry(
			mvcContentNegotiationManager(), this.applicationContext);
	configureViewResolvers(registry);

	if (registry.getViewResolvers().isEmpty()) {
		String[] names = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
				this.applicationContext, ViewResolver.class, true, false);
		if (names.length == 1) {
			registry.getViewResolvers().add(new InternalResourceViewResolver());
		}
	}

	ViewResolverComposite composite = new ViewResolverComposite();
	composite.setOrder(registry.getOrder());
	composite.setViewResolvers(registry.getViewResolvers());
	composite.setApplicationContext(this.applicationContext);
	composite.setServletContext(this.servletContext);
	return composite;
}
 
/**
 * Register a {@link ViewResolverComposite} that contains a chain of view resolvers
 * to use for view resolution.
 * By default this resolver is ordered at 0 unless content negotiation view
 * resolution is used in which case the order is raised to
 * {@link org.springframework.core.Ordered#HIGHEST_PRECEDENCE
 * Ordered.HIGHEST_PRECEDENCE}.
 * <p>If no other resolvers are configured,
 * {@link ViewResolverComposite#resolveViewName(String, Locale)} returns null in order
 * to allow other potential {@link ViewResolver} beans to resolve views.
 * @since 4.1
 */
@Bean
public ViewResolver mvcViewResolver() {
	ViewResolverRegistry registry = new ViewResolverRegistry();
	registry.setContentNegotiationManager(mvcContentNegotiationManager());
	registry.setApplicationContext(this.applicationContext);
	configureViewResolvers(registry);

	if (registry.getViewResolvers().isEmpty()) {
		String[] names = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
				this.applicationContext, ViewResolver.class, true, false);
		if (names.length == 1) {
			registry.getViewResolvers().add(new InternalResourceViewResolver());
		}
	}

	ViewResolverComposite composite = new ViewResolverComposite();
	composite.setOrder(registry.getOrder());
	composite.setViewResolvers(registry.getViewResolvers());
	composite.setApplicationContext(this.applicationContext);
	composite.setServletContext(this.servletContext);
	return composite;
}
 
源代码9 项目: spring4-understanding   文件: MvcNamespaceTests.java
@Test
public void testContentNegotiationManager() throws Exception {
	loadBeanDefinitions("mvc-config-content-negotiation-manager.xml", 15);

	RequestMappingHandlerMapping mapping = appContext.getBean(RequestMappingHandlerMapping.class);
	ContentNegotiationManager manager = mapping.getContentNegotiationManager();

	MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo.xml");
	NativeWebRequest webRequest = new ServletWebRequest(request);
	assertEquals(Arrays.asList(MediaType.valueOf("application/rss+xml")), manager.resolveMediaTypes(webRequest));

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());

	ViewResolver resolver = compositeResolver.getViewResolvers().get(0);
	assertEquals(ContentNegotiatingViewResolver.class, resolver.getClass());
	ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolver;
	assertSame(manager, cnvr.getContentNegotiationManager());
}
 
源代码10 项目: spring4-understanding   文件: MvcNamespaceTests.java
@Test
public void testViewResolutionWithContentNegotiation() throws Exception {
	loadBeanDefinitions("mvc-config-view-resolution-content-negotiation.xml", 7);

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals(1, compositeResolver.getViewResolvers().size());
	assertEquals(Ordered.HIGHEST_PRECEDENCE, compositeResolver.getOrder());

	List<ViewResolver> resolvers = compositeResolver.getViewResolvers();
	assertEquals(ContentNegotiatingViewResolver.class, resolvers.get(0).getClass());
	ContentNegotiatingViewResolver cnvr = (ContentNegotiatingViewResolver) resolvers.get(0);
	assertEquals(7, cnvr.getViewResolvers().size());
	assertEquals(1, cnvr.getDefaultViews().size());
	assertTrue(cnvr.isUseNotAcceptableStatusCode());

	String beanName = "contentNegotiationManager";
	DirectFieldAccessor accessor = new DirectFieldAccessor(cnvr);
	ContentNegotiationManager manager = (ContentNegotiationManager) accessor.getPropertyValue(beanName);
	assertNotNull(manager);
	assertSame(manager, this.appContext.getBean(ContentNegotiationManager.class));
}
 
源代码11 项目: spring-analysis-note   文件: MvcNamespaceTests.java
@Test
public void testViewResolutionWithOrderSet() throws Exception {
	loadBeanDefinitions("mvc-config-view-resolution-custom-order.xml");

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());
	assertEquals(123, compositeResolver.getOrder());
}
 
@Test
public void mvcViewResolver() {
	ApplicationContext context = initContext(WebConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(1, resolver.getViewResolvers().size());
	assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
	assertEquals(Ordered.LOWEST_PRECEDENCE, resolver.getOrder());
}
 
@Test
public void mvcViewResolverWithExistingResolver() throws Exception {
	ApplicationContext context = initContext(WebConfig.class, ViewResolverConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(0, resolver.getViewResolvers().size());
	assertEquals(Ordered.LOWEST_PRECEDENCE, resolver.getOrder());
	assertNull(resolver.resolveViewName("anyViewName", Locale.ENGLISH));
}
 
@Test
public void mvcViewResolverWithOrderSet() {
	ApplicationContext context = initContext(CustomViewResolverOrderConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(1, resolver.getViewResolvers().size());
	assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
	assertEquals(123, resolver.getOrder());
}
 
源代码15 项目: java-technology-stack   文件: MvcNamespaceTests.java
@Test
public void testViewResolutionWithOrderSet() throws Exception {
	loadBeanDefinitions("mvc-config-view-resolution-custom-order.xml");

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());
	assertEquals(123, compositeResolver.getOrder());
}
 
@Test
public void mvcViewResolver() {
	ApplicationContext context = initContext(WebConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(1, resolver.getViewResolvers().size());
	assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
	assertEquals(Ordered.LOWEST_PRECEDENCE, resolver.getOrder());
}
 
@Test
public void mvcViewResolverWithExistingResolver() throws Exception {
	ApplicationContext context = initContext(WebConfig.class, ViewResolverConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(0, resolver.getViewResolvers().size());
	assertEquals(Ordered.LOWEST_PRECEDENCE, resolver.getOrder());
	assertNull(resolver.resolveViewName("anyViewName", Locale.ENGLISH));
}
 
@Test
public void mvcViewResolverWithOrderSet() {
	ApplicationContext context = initContext(CustomViewResolverOrderConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(1, resolver.getViewResolvers().size());
	assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
	assertEquals(123, resolver.getOrder());
}
 
源代码19 项目: spring4-understanding   文件: MvcNamespaceTests.java
@Test
public void testViewResolutionWithOrderSet() throws Exception {
	loadBeanDefinitions("mvc-config-view-resolution-custom-order.xml", 1);

	ViewResolverComposite compositeResolver = this.appContext.getBean(ViewResolverComposite.class);
	assertNotNull(compositeResolver);
	assertEquals("Actual: " + compositeResolver.getViewResolvers(), 1, compositeResolver.getViewResolvers().size());
	assertEquals(123, compositeResolver.getOrder());
}
 
@Test
public void mvcViewResolver() {
	ApplicationContext context = initContext(WebConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(1, resolver.getViewResolvers().size());
	assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
	assertEquals(Ordered.LOWEST_PRECEDENCE, resolver.getOrder());
}
 
@Test
public void mvcViewResolverWithExistingResolver() throws Exception {
	ApplicationContext context = initContext(WebConfig.class, ViewResolverConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(0, resolver.getViewResolvers().size());
	assertEquals(Ordered.LOWEST_PRECEDENCE, resolver.getOrder());
	assertNull(resolver.resolveViewName("anyViewName", Locale.ENGLISH));
}
 
@Test
public void mvcViewResolverWithOrderSet() {
	ApplicationContext context = initContext(CustomViewResolverOrderConfig.class);
	ViewResolverComposite resolver = context.getBean("mvcViewResolver", ViewResolverComposite.class);

	assertNotNull(resolver);
	assertEquals(1, resolver.getViewResolvers().size());
	assertEquals(InternalResourceViewResolver.class, resolver.getViewResolvers().get(0).getClass());
	assertEquals(123, resolver.getOrder());
}
 
 类方法
 同包方法