我花了几个小时尝试使用InternalResourceViewResolver
来为html视图添加前缀和后缀。
我的观点位于static/pages/
和Spring文档下,文件夹static
被视为静态内容的默认值之一。因此,我可以通过pages/profile.html
访问个人资料页面。但我真正想要的是profile
而不是pages/profile.html
。
我已经尝试了几个答案,但这不起作用,例如:
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("pages/");
resolver.setSuffix(".html");
return resolver;
}
并添加
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
仍然无法正常工作。 添加任何后缀或前缀,我无法在任何路径上找到页面。我开始在pages/profile.html
上获得404,但它也没有出现在其他网址上。
答案 0 :(得分:1)
只需要像这样添加自己的自定义配置
@Configuration
public class WebMvcConfig {
@Bean
public InternalResourceViewResolver defaultViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/jsp");
resolver.setSuffix(".jsp");
return resolver;
}
}
然后你可以通过“http://localhost:8080/beans”
检查所有的豆子你可以使用自定义配置bean:
{
"bean": "defaultViewResolver",
"scope": "singleton",
"type": "org.springframework.web.servlet.view.InternalResourceViewResolver",
"resource": "class path resource [io/cloudhuang/web/WebMvcConfig.class]",
"dependencies": [ ]
}
但最简单的方法应该是在applicatin.properties
spring.mvc.view.prefix=
spring.mvc.view.suffix=
答案 1 :(得分:0)
使用Spring Boot,您实际上不需要声明自己的InternalResourceViewResolver。 Boot为您声明了它,您只需在application.properties文件中添加几个属性即可。例如。在你的情况下,这些将是:
spring.mvc.view.prefix=/jsp
spring.mvc.view.suffix=.jsp