DEBUG - Looking up handler method for path /view/adduser
DEBUG - Did not find handler method for [/view/adduser]
DEBUG - Mapping [/view/adduser] to HandlerExecutionChain with handler
[org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler]
請求路徑 /view/adduser 與 Controller 映射 /adduser 不匹配,Spring 退而尋求靜態資源處理器,導致 Controller 未執行。
// ❌ 當前 Controller
@Controller
public class UserController {
@RequestMapping("/adduser") // 只匹配 /adduser
public ModelAndView addUser(...) { ... }
}
// 請求 URL: /view/adduser (表單 action 或 AJAX url)
@Controller
@RequestMapping("/view") // 類級別映射前綴
public class UserController {
@RequestMapping("/adduser") // 完整路徑: /view/adduser
public ModelAndView addUser(...) { ... }
@RequestMapping("/seluser") // 完整路徑: /view/seluser
public ModelAndView selUser(...) { ... }
}
@Controller
public class UserController {
@RequestMapping("/view/adduser")
public ModelAndView addUser(...) { ... }
}
<!-- JSP 表單 -->
<form action="<%=request.getContextPath()%>/adduser" method="post">
<!-- 而非 /view/adduser -->
</form>
最終匹配路徑 = 類級別 @RequestMapping + 方法級別 @RequestMapping
// 例: /view + /adduser = /view/adduser
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping/actuator/mappings (Spring Boot Actuator) 查看所有映射
3. 瀏覽器 Network 面板確認實際請求 URL
4. Controller 方法首行打印日誌驗證進入
<mvc:annotation-driven /><mvc:default-servlet-handler />DispatcherServlet 映射 / 而非 *.doViewResolver 配置