Controller 定義
@Controller
public class PageController {
@RequestMapping("/login")
public String login() { return "login"; } // 視圖解析器對應 /WEB-INF/views/login.jsp
@RequestMapping("/major")
public String major() { return "major"; } // 對應 major.jsp
}
登入頁表單跳轉
<!-- login.jsp -->
<form action="major" method="post"> <!-- 或 method="get" -->
<input type="submit" value="登入進入主頁" />
</form>
運作流程
- 使用者點擊提交按鈕,瀏覽器向
/major 發送請求。
- DispatcherServlet 攔截,匹配
@RequestMapping("/major")。
- 執行
major() 回傳視圖名 "major"。
- ViewResolver (如
InternalResourceViewResolver) 拼接前綴/後綴 → /WEB-INF/views/major.jsp。
- 轉發渲染 JSP 回應瀏覽器。
關鍵點
- 表單
action 對應 **Controller 方法的映射路徑**,而非直接寫 JSP 檔名。
- 若需攜帶登入驗證邏輯,表單提交到
/doLogin,Controller 驗證成功後 return "redirect:/major" 重導向(避免重複提交)。