1. 程式人生 > >springmvc中controller 使用@RestController 和 @Controller 返回結果的區別

springmvc中controller 使用@RestController 和 @Controller 返回結果的區別

springmvc中返回結果為return中的內容的話可以使用@RestController
或者@[email protected], @RestController註解相當於@ResponseBody + @Controller合在一起的作用。  


如果想要頁面跳轉的話,就使用@Controller,不要加上@ResoponseBody。


1)如果只是使用@RestController或者 @ResponseBody + @Controller 註解 Controller,Controller中的方法是無法返回jsp頁面,
配置的檢視解析器InternalResourceViewResolver不起作用,返回的內容就是return 裡的內容,而不是return裡面制定的jsp頁面。
比如  return "hello";@RestController或者 @ResponseBody + @Controller 返回的直接是字串 "hello";
而 @controller 返回的是 對應的 hello.jsp頁面。


2)如果要返回到指定頁面,則需要用 @Controller配合檢視解析器InternalResourceViewResolver才行,這個可以參考springMvc的配置,一般如下


    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>