带有.html结尾的Spring Boot网址

时间:2017-02-17 18:16:58

标签: spring spring-mvc spring-boot

我有一个非常简单的hello world with spring boot(只是入门网,没有百里香等)。 我想处理/ hello url,它应该从/static/view.html

生成视图

我的控制器中有/static/view.html和简单方法:

@RequestMapping("/hello")
public String hello2() {
    return "hello.html";
}

问题是它会导致错误:

  

圆形视图路径[hello.html]:将调度回当前路径   处理程序URL [/hello.html]再次

我发现如果我访问/ hello或/hello.html并不重要,Spring会同样对待它们。

如何返回与url路径同名的简单静态html以及spring mvc / boot中的哪个对象导致像/example.html这样的映射网址只是/ example?

2 个答案:

答案 0 :(得分:1)

您必须执行后续步骤:

  1. 介绍MVC配置:
  2. @Configuration
    @EnableWebMvc
    public class MvcConfiguration extends WebMvcConfigurerAdapter{
        @Bean
        public ViewResolver getViewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/");
            return resolver;
        }
    
        @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }
    }
    
    1. hello.html 放入 / src / main / webapp / WEB-INF 文件夹

    2. 确保您具有以下编译依赖项:

      compile("org.springframework.boot:spring-boot-starter-web")
      compile("org.apache.tomcat.embed:tomcat-embed-jasper")
      

      我发布了gradle代码,如果你有maven使用类似的xml。

    3. 注意第3步是最重要的一步,因为如果您使用的是弹簧启动,它会根据您在类路径中的内容应用自动配置。例如,如果你添加百日咳依赖

      compile("org.springframework.boot:spring-boot-starter-thymeleaf")
      
      因为百里香将引入自己配置的自动配置解析器,所以最容易破解代码。

答案 1 :(得分:0)

删除控制器中的方法。静态内容不需要@RequestMapping