将ParameterizableViewController定义为使用视图自动重定向路径URL

时间:2015-02-11 08:22:40

标签: spring-boot

我正在使用spring boot 1.2.1,我想配置一个ParameterizableViewController,就像我在xml风格中所做的那样:

例如在我做之前:

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

该代码将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=[org.springframework.web.servlet.resource.PathResourceResolver@39689892]]] 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
我错过了什么吗?我觉得我需要在某处指定和url,我尝试用@Bean(name =&#34; ie7Controller&#34;)添加@RequestMapping(value =&#34; ie7&#34;)但没有运气

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的要求,那么以下代码应该可以解决问题:

@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");
    };

}