2012-07-13 48 views
0

我可以在XML中轻松配置,但不能在@Configuration中配置。如何将属性文件中的spring 3.1 classNameString转换为类?

属性

spring.view.class=org.springframework.web.servlet.view.JstlView 
spring.view.prefix=/WEB-INF/jsp/ 
spring.view.suffix=.jsp 

代码

@Bean 
public UrlBasedViewResolver viewResolver() throws ClassNotFoundException { 
    //ViewResolver Setting 
    Class viewResolverClass = env.getPropertyAsClass("spring.view.class", Class.class); 
    String viewResolverPrefix = env.getProperty("spring.view.prefix"); 
    String viewResolverSuffix = env.getProperty("spring.view.suffix"); 
    UrlBasedViewResolver viewResolver = new UrlBasedViewResolver(); 
    viewResolver.setViewClass(viewResolverClass); 
    viewResolver.setPrefix(viewResolverPrefix); 
    viewResolver.setSuffix(viewResolverSuffix); 
    return viewResolver; 
} 

错误

throws java.lang.ClassNotFoundException] threw exception; nested exception is java.lang.IllegalArgumentException: Cannot convert value [org.springframework.web.servlet.view.JstlView] from source type [String] to target type [Class] 

在此先感谢。

回答

0

错误消息太明显了,并说所有:

无法转换值...从源类型[字符串]为目标类型[等级]

所以,你应该手动转换StringClass是这样的:

viewResolver.setViewClass(Class.forName(viewResolverClass)); 
相关问题