Spring MVC - 返回静态页面

Avi*_*Avi 2 html java servlets controller spring-mvc

我正在努力尝试从弹簧MVC控制器返回静态网页.我遵循了这个教程:http://www.tutorialspoint.com/spring/spring_static_pages_example.htm但它仍然无法正常工作.

这是我定义配置(使用的配置类)的方式:

@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan({ "com.my.web.api"})
@ImportResource("classpath:db-context.xml")
public class ApiServletConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

    @Bean
    public InternalResourceViewResolver internalResourceViewResolver() {
        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
        internalResourceViewResolver.setPrefix("/resources/");
        internalResourceViewResolver.setSuffix("*.html");
        return internalResourceViewResolver;
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器方法:

@RequestMapping(value = "/{id}/view", method = RequestMethod.GET, produces = "text/html")
@ResponseBody
public String getPostByIdHtml( @PathVariable String id) throws IOException {
    return "/resources/Post.html";
}
Run Code Online (Sandbox Code Playgroud)

在webapp文件夹下有一个名为"resources"的文件夹,下面有一个文件"Post.html".我还应该做些什么才能将此页面作为HTML返回而不是获取字符串"resources/Post.html"?

谢谢您的帮助.

vin*_*tks 5

请删除注释@ResponseBody.删除注释后,应将浏览器重定向到所需的页面.

此注释指示控制器中的方法返回的值应绑定到Web响应正文.在您的情况下,您不需要:您需要Spring来呈现页面/resources/Post.html,因此不需要这个注释.