我有一个非常简单的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?
答案 0 :(得分:1)
您必须执行后续步骤:
@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();
}
}
将 hello.html 放入 / src / main / webapp / WEB-INF 文件夹
确保您具有以下编译依赖项:
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.apache.tomcat.embed:tomcat-embed-jasper")
我发布了gradle代码,如果你有maven使用类似的xml。
注意第3步是最重要的一步,因为如果您使用的是弹簧启动,它会根据您在类路径中的内容应用自动配置。例如,如果你添加百日咳依赖
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
因为百里香将引入自己配置的自动配置解析器,所以最容易破解代码。
答案 1 :(得分:0)
删除控制器中的方法。静态内容不需要@RequestMapping
。