Spring MVC 控制器接收前端參數主要有兩種寫法:显式 @RequestParam 與隱式直接映射。本文通過完整可運行的 Demo,對比兩者語法、適用場景、優缺點,助你根據業務靈活選擇。
commons-logging(必須,否則啟動報錯)web.xml 配置 DispatcherServlet,映射 *.springspringMVC-servlet.xml 僅啟用 <context:component-scan><form action="login.spring" method="post">
username: <input type="text" name="username"><br/>
password: <input type="text" name="password"><br/>
<input type="submit" value="登錄">
</form>
特點:
value 指定)required=false 使參數可選
特點:
null 而非報錯![]() | ![]() |
![]() |
| 維度 | @RequestParam | 隱式映射 |
|---|---|---|
| 參數名映射 | 显式指定 | 約定大於配置 |
| 必填校驗 | 支援 required | 不支援 |
| 默認值 | 支援 defaultValue | 不支援 |
| 適用場景 | 表單、複雜參數、需嚴格校驗 | AJAX、簡單參數、快速原型 |
| 可讀性 | 意圖明確 | 簡潔但隱含約定 |
@RequestParam,契約清晰、文檔友好(@RequestParam("id") Long id, String name)理解兩者本質差異,能讓你在不同業務場景下寫出更健壯、可維護的 Controller 代碼。