@Controller
@RequestMapping("/app")
public class MainController {
@RequestMapping(value = "/loginAction", method = RequestMethod.POST)
private String loginAction(@Valid @ModelAttribute("user") User user , BindingResult bindingResult){
if(bindingResult.hasErrors()){
return "login";
}
Date current_date = new Date();
SimpleDateFormat SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
user.setCreateTime(SimpleDateFormat.format(current_date.getTime()));
user.setStatus("enable");
int statue = userService.login(user);
if(statue > 0){
return "redirect:forMain";
}else {
return "login";
}
}
@RequestMapping(value = "/forMain", method = RequestMethod.GET)
private String froMain(){
return "index";
}
}
為了防止表單重復(fù)提交疗隶,我這邊在用戶注冊以后重定向到主界面颜及,如果返回路徑寫為:return "redirect:/forMain";
假設(shè)我們的項目部署在本地localhost:8080
;此時mvc會視為絕對路徑贰健,將跳轉(zhuǎn)到http://localhost:8080/forMain
,此時發(fā)現(xiàn)404了辜御,實質(zhì)上我們應(yīng)該使用相對路徑灭美,因為我們的login請求和forMain請求在同一個controller下,所以改為``return "redirect:forMain";此時會跳轉(zhuǎn)到
http://localhost:8080/app/forMain`.
還有一種就是在Jsp中的請求养盗,此時我可能在hello.jsp中要鏈接到另外一個路徑下缚陷,如下所示:
<a href="${pageContext.request.contextPath}/user/imgInfo">進入用戶圖片上傳界面</a>
我們這里有另外一個UserController:
@Controller
@RequestMapping("/user")
public class UserController {
// 處理上傳的
@RequestMapping("/imgInfo")
public String upload2() {
return "user/fileupload";
}
}
由于我們的hello.jsp請求路徑為http://localhost:8080/app/hello
,若我們寫為<a href="${pageContext.request.contextPath}user/imgInfo">進入用戶圖片上傳界面</a>
,則跳轉(zhuǎn)路徑為http://localhost:8080/app/user/imgInfo
.所以這里要使用絕對路徑往核。