2013-06-14 5 views
2

스프링 MVC 컨트롤러에서 정적 웹 페이지를 반환하는 데 어려움을 겪고 있습니다. 이 자습서의 내용은 http://www.tutorialspoint.com/spring/spring_static_pages_example.htm이지만 아직 작동하지 않습니다.스프링 MVC - 정적 페이지 반환

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

컨트롤러 방법 :

@RequestMapping(value = "/{id}/view", method = RequestMethod.GET, produces = "text/html") 
@ResponseBody 
public String getPostByIdHtml(@PathVariable String id) throws IOException { 
    return "/resources/Post.html"; 
} 
"자원"라는 이름의 폴더가있어 웹 애플리케이션 폴더에서

과에서 거기

내가 구성 (사용되는 구성 클래스)를 정의하는 방법이다 파일 "Post.html". 이 페이지를 "resources/Post.html"문자열 대신 HTML로 반환하려면 어떻게해야합니까?

도움 주셔서 감사합니다.

답변

5

@ResponseBody 주석을 제거하십시오. 특수 효과가 제거되면 브라우저가 원하는 페이지로 리디렉션되어야합니다.

이 주석은 컨트롤러의 메소드에서 반환 한 값을 웹 응답 본문에 바인딩해야 함을 나타냅니다. 귀하의 경우에는 그럴 필요가 없습니다. 페이지/자원/포스트. html을 렌더링하려면 Spring이 필요하므로이 주석이 필요 없습니다.

+0

고맙습니다. 그 대답이었다. 이제 정적 이미지에 문제가 있습니다. 하지만 그것은 다른 질문에 대한 주제입니다 :) – Avi

관련 문제