SpringMvc獲取頁面中的參數(shù)方法詳解
一、設(shè)置HttpServletRequest request獲取
index頁面通過form標(biāo)簽傳入?yún)?shù)代碼
<form th:action="@{/test/params/servletAPI}" method="get"> 用戶名;<input type="text" name="username"><br> 密碼;<input type="password" name="password"><br> <input type="submit" value="提交"><br> </form>
控制層代碼
只需要在控制器方法的形參位置設(shè)置HttpServletRequest request參數(shù) *就可以在控制器方法中使用request對象獲取請求參數(shù)
注意這里我們的類并沒有繼承HttpServletRequest,但是我們只需要設(shè)置參數(shù)就可以使用它了
這是因為,我們在web.xml文件初始化的時候就會將我們的類交給DispatcherServlet管理, 這樣在主頁面中調(diào)用方法時我們DispatcherServlet底層時封裝的serclet
所以我們只需要輸入?yún)?shù)HttpServletRequest request 就可以自動獲得一個servlet對象 (但是從這里我們也可以看出,我們并不會經(jīng)常使用這種方式獲取參數(shù),因為既然DispatcherServlet為我們封裝了servlet、 那我們沒必要使用原生的servlet方法)
@Controller public class GetparamController { @RequestMapping("/test/params/servletAPI") public String GetParams1(HttpServletRequest request){ String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("username="+username+" password="+password); return "success"; }
二、將請求參數(shù)和控制器方法的形參綁定
index頁面通過form標(biāo)簽傳入?yún)?shù)代碼
<form th:action="@{/test/params1}" method="get"> 用戶名;<input type="text" name="username"><br> 密碼;<input type="password" name="password"><br> <input type="submit" value="提交"><br> </form>
控制層代碼
- @RequestParam注解的三個屬性;value,required,defaultvalue
- value;設(shè)置和形參綁定的請求參數(shù)的名字
- required;設(shè)置是否必須傳輸value所對應(yīng)的請求參數(shù)
- 默認(rèn)值為ture,表示value所對應(yīng)的請求參數(shù)必須傳輸,否則頁面報錯;400
- 若設(shè)置為false,則表示value所對應(yīng)的請求參數(shù)不是必須傳輸,若未傳輸,則形參值為null
- defaultvalue;設(shè)置當(dāng)沒有傳輸value所對應(yīng)的請求參數(shù)時,為形參設(shè)置默認(rèn)值,此時和required屬性無關(guān)
@RequestMapping("/test/params1") public String GetParams2( //required =true;這里表示必須傳入?yún)?shù)username //value = "username" 將username的值賦值給 String name //defaultValue = "home";如果傳入了username沒有賦值則給他默認(rèn)值home,若有值則不管 @RequestParam(value = "username",required =true,defaultValue = "home")String name, String password){ System.out.println("username="+name+" password="+password); return "success"; }
三、通過實體類類型的參數(shù)獲取
index頁面通過form標(biāo)簽傳入?yún)?shù)代碼
<form th:action="@{/test/params/pojo}" method="post"> 用戶名;<input type="text" name="username"><br> 密碼;<input type="password" name="password"><br> <input type="submit" value="提交"><br> </form>
創(chuàng)建User實體類,并且類中的屬性和請求參數(shù)的名字一一對應(yīng)
public class User { private String username; private String password; public User() { } public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
控制層代碼
需要在控制器方法的形參位置設(shè)置實體類類型的形參,要保證實體類中的屬性的屬性名和請求參數(shù)的名字一一對應(yīng) 可以通過實體類類型的形參獲取請求參數(shù)
@RequestMapping("/test/params/pojo") public String GetParams2(User user){ System.out.println(user); return "success"; } }
四、@RequestHeader,@CookieValue
- @RequestHeader;將請求頭和控制器方法的形參綁定(用法和,@RequestParam一樣)
- @CookieValue;將cookie數(shù)據(jù)和控制器方法的形參綁定(用法和,@RequestParam一樣)
到此這篇關(guān)于SpringMvc獲取頁面中的參數(shù)方法詳解的文章就介紹到這了,更多相關(guān)SpringMvc獲取頁面參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式
這篇文章主要為大家介紹了Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01SpringBoot安全策略開發(fā)之集成數(shù)據(jù)傳輸加密
這篇文章主要介紹了SpringBoot集成數(shù)據(jù)傳輸加密,近期在對開發(fā)框架安全策略方面進(jìn)行升級優(yōu)化,提供一些通用場景的解決方案,本文針對前后端數(shù)據(jù)傳輸加密進(jìn)行簡單的分享2023-01-01springboot 整合EhCache實現(xiàn)單服務(wù)緩存的操作方法
這篇文章主要介紹了springboot 整合EhCache實現(xiàn)單服務(wù)緩存的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Spring Security攔截器引起Java CORS跨域失敗的問題及解決
這篇文章主要介紹了Spring Security攔截器引起Java CORS跨域失敗的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot創(chuàng)建Docker鏡像的方法步驟
這篇文章主要介紹了SpringBoot創(chuàng)建Docker鏡像的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11