我的Spring MVC應用程序中有一個非常奇怪的問題。我寫一個登錄表單,並通過AJAX的影像資料發佈在Spring MVC控制器,它看起來像這樣:Spring MVC和POST重定向發送URL上的目標文件
@Controller
public class LoginResourceController {
private static final Logger log = Logger.getLogger (LoginResourceController.class.getName());
@RequestMapping (value="/login", method = RequestMethod.POST)
public String checkAccount (HttpServletRequest httpRequest, HttpServletResponse httpResponse,
@RequestHeader (value = "User-Agent") String retrievedUserAgent,
@RequestParam("username") String username,
@RequestParam("password") String password,
@RequestParam("rememberMe") String rememberMe)
{
//Check username and password in DB, and then if OK,
return "redirect:/login/redirectToMain";
}
@RequestMapping (value = "/login/redirectToMainpage", method = RequestMethod.GET)
public String redirectControllerToMainPage (HttpServletRequest httpRequest, HttpServletResponse httpResponse)
{
return "mainPage";
}
現在的問題是,我有客戶端(瀏覽器)在重定向請求包含一個URL 整個內容的mainPage.jsp
在URL中。所以它看起來像:
https://localhost:8443/<!DOCTYPE html><html><head><meta charset=utf-8 /><title>Page that the subscriber sees after login</title>....
我感到相當此錯誤混淆。這是我需要更改的WEB-INF/web.xml
還是mvc-dispatcher-servlet.xml
中的一些servlet設置?我正在使用Spring 3.0.5。
順便說一下,我的重定向工作完美地爲GET
方法控制器在相同的Spring MVC應用程序。 (例如,當我重新加載我的應用程序的主頁面時,重定向到上面登錄的mainPage.jsp
完美地工作)。此外,在其他的JSP等GET
方法正常工作過(例如,通過的https://localhost:8443/
一個GET
通過login.jsp
重定向到/login
頁
也使用Spring 4.0.3證實了同樣的無法解釋的行爲。 – Sonny