2015-02-11 61 views
0

我使用的是春天的引导1.2.1,我想配置ParameterizableViewController的就像我在XML风格是这样做的:定义ParameterizableViewController的自动重定向路径URL与视图

比如之前我在做什么:

<mvc:view-controller path="/ie7"/> 

该代码将URL如http://mywebsite.com/mycontext/ie7重定向到放置在/WEB-INF/views/ie7.jsp中的jsp,而无需直接创建控制器。

我想用弹簧引导做同样的事情。在网上检查后我在配置文件中有这样的:

@Bean(name = "ie7Controller") 
public ParameterizableViewController getIe7ControllerView() { 
    ParameterizableViewController viewController = new ParameterizableViewController(); 
    viewController.setViewName("ie7"); 
    return viewController; 
} 

在我application.properties我配置的观点是这样的:

spring.view.prefix=/WEB-INF/views/ 
spring.view.suffix=.jsp 

我尝试也补充:

@Bean 
public InternalResourceViewResolver getViewResolver() { 
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    viewResolver.setSuffix(".jsp"); 
    return viewResolver; 
} 

但是,当我尝试http://mywebsite.com/mycontext/ie7我得到了404。 这里是我得到的日志:

在应用程序启动:

Rejected bean name 'ie7Controller': no URL paths identified 

当我尝试调用页面:

2015-02-11 09:01:42.693 DEBUG 1160 --- [nio-8080-exec-2]  o.s.web.servlet.DispatcherServlet  : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/stdapps/ie7] 
2015-02-11 09:01:42.699 DEBUG 1160 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /ie7 
2015-02-11 09:01:42.704 DEBUG 1160 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/ie7] 
2015-02-11 09:01:42.706 DEBUG 1160 --- [nio-8080-exec-2] o.s.w.s.handler.SimpleUrlHandlerMapping : Matching patterns for request [/ie7] are [/**] 
2015-02-11 09:01:42.708 DEBUG 1160 --- [nio-8080-exec-2] o.s.w.s.handler.SimpleUrlHandlerMapping : URI Template variables for request [/ie7] are {} 
2015-02-11 09:01:42.712 DEBUG 1160 --- [nio-8080-exec-2] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapping [/ie7] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locations=[ServletContext resource [/], class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/]], resolvers=[[email protected]689892]]] and 1 interceptor 
2015-02-11 09:01:42.714 DEBUG 1160 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet  : Last-Modified value for [/stdapps/ie7] is: -1 

做我错过了什么?我觉得我需要的地方指定和网址,我尝试使用@Bean(NAME =“ie7Controller”),没有运气加上@RequestMapping(值=“IE7”)

感谢您的帮助

回答

1

如果我正确理解你的要求,然后下面的代码应该做的伎俩:

@Configuration 
@ComponentScan 
@EnableAutoConfiguration 
@EnableWebMvc 
public class Application extends WebMvcConfigurerAdapter { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/ie7").setViewName("ie7"); 
    }; 

} 
+0

完美!正是我需要的,谢谢你的魅力! – partyboy 2015-02-11 14:31:29