買了本書,打算系統的學習一下spring,做了一下書中的練習,出現了一個問題,Controller類的方法返回String,但是頁面不跳轉,而是直接把字符串的內容顯示到頁面上。
@RequestMapping(value = "/index.html")
public String loginPage(){
return "login";
}
這個Controller類是直接復制書中的源碼的,看了一下Controller類,發現使用的是@RestController注解,這才找到了問題。
@RestController
public class LoginController {
......
}
使用@RestController注解等於使用@Controller和@ResponseBody兩個注解。
@RestController
public class LoginController {
......
}
@Controller
@ResponseBody
public class LoginController {
......
}
使用@RestController注解的結果是標識該類是Spring MVC controller處理器,並且把返回結果直接寫入HTTP response body中。所以”login”沒有被解析為跳轉路徑,頁面沒有跳轉。