SpringMvc獲取頁面中的參數(shù)方法詳解
一、設置HttpServletRequest request獲取
index頁面通過form標簽傳入?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>
控制層代碼
只需要在控制器方法的形參位置設置HttpServletRequest request參數(shù) *就可以在控制器方法中使用request對象獲取請求參數(shù)
注意這里我們的類并沒有繼承HttpServletRequest,但是我們只需要設置參數(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標簽傳入?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ù)的名字
- required;設置是否必須傳輸value所對應的請求參數(shù)
- 默認值為ture,表示value所對應的請求參數(shù)必須傳輸,否則頁面報錯;400
- 若設置為false,則表示value所對應的請求參數(shù)不是必須傳輸,若未傳輸,則形參值為null
- defaultvalue;設置當沒有傳輸value所對應的請求參數(shù)時,為形參設置默認值,此時和required屬性無關
@RequestMapping("/test/params1")
public String GetParams2(
//required =true;這里表示必須傳入?yún)?shù)username
//value = "username" 將username的值賦值給 String name
//defaultValue = "home";如果傳入了username沒有賦值則給他默認值home,若有值則不管
@RequestParam(value = "username",required =true,defaultValue = "home")String name, String password){
System.out.println("username="+name+" password="+password);
return "success";
}
三、通過實體類類型的參數(shù)獲取
index頁面通過form標簽傳入?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ù)的名字一一對應
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ù)
@RequestMapping("/test/params/pojo")
public String GetParams2(User user){
System.out.println(user);
return "success";
}
}
四、@RequestHeader,@CookieValue
- @RequestHeader;將請求頭和控制器方法的形參綁定(用法和,@RequestParam一樣)
- @CookieValue;將cookie數(shù)據(jù)和控制器方法的形參綁定(用法和,@RequestParam一樣)
到此這篇關于SpringMvc獲取頁面中的參數(shù)方法詳解的文章就介紹到這了,更多相關SpringMvc獲取頁面參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java之通過OutputStream寫入文件與文件復制問題
這篇文章主要介紹了Java之通過OutputStream寫入文件與文件復制問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
解決 java: 程序包com.baomidou.mybatisplus.annotation不存在
在使用Java編寫程序時,經(jīng)常會遇到各種編譯錯誤或運行時異常,本文主要介紹了解決java:程序包com.baomidou.mybatisplus.annotation不存在,具有一定的參考價值,感興趣的可以了解一下2024-03-03
Java Swing JSlider滑塊的實現(xiàn)示例
這篇文章主要介紹了Java Swing JSlider滑塊的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
Java并發(fā)系列之ReentrantLock源碼分析
這篇文章主要為大家詳細介紹了Java并發(fā)系列之ReentrantLock源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
Java微服務Filter過濾器集成Sentinel實現(xiàn)網(wǎng)關限流過程詳解
這篇文章主要介紹了Java微服務Filter過濾器集成Sentinel實現(xiàn)網(wǎng)關限流過程,首先Sentinel規(guī)則的存儲默認是存儲在內(nèi)存的,應用重啟之后規(guī)則會丟失。因此我們通過配置中心Nacos保存規(guī)則,然后通過定時拉取Nacos數(shù)據(jù)來獲取規(guī)則配置,可以做到動態(tài)實時的刷新規(guī)則2023-02-02

