RequestMapping注解
@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping {String name() default "";@AliasFor("path")String[] value() default {};@AliasFor("value")String[] path() default {};RequestMethod[] method() default {};String[] params() default {};String[] headers() default {};String[] consumes() default {};String[] produces() default {}; }
作用: 建立請求URL和處理方法之間的對應關系 出現位置:方法和類上 作用在類上:第一季訪問目錄 作用在方法上:第二級訪問目錄 注意:路徑可以不寫 / 表示應用的根目錄開始 屬性: path:指定請求的url value:value屬性和path屬性一樣 mthod:指定該方法的請求方式 params:指定限制請求參數條件 headers:發送請求中必須包含的請求頭
請求參數的綁定
基本數據類型和字符串類型
實體類(javabean)
集合數據類型(list、map集合等)
-
以傳遞用戶名和密碼為例,修改index.jsp頁面,添加綁定參數
<html> <body> <h2>Hello World!</h2> <h1>Login</h1> <a href="/param?username=oneStar&password=123">login</a> </body> </html>
-
在控制層添加請求映射,以參數的形式進行傳遞
? ?@RequestMapping(path = "/param")public String user(@RequestParam("username") String username,@RequestParam("password") String password){System.out.println(username);System.out.println(password);return "success";}
-
實體類綁定參數
-
創建實體類
package com.pyb.pojo; ? /*** @version 1.0* @Author 彭彥彬* @Date 2025/1/9 21:01* @注釋*/ public class User {private String username;private String password; ?public User(String username, String password) {this.username = username;this.password = password;} ?public User() {} ?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;} ?@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';} } ?
-
修改index.jsp頁面
<html> <body> <h1>Pojo</h1> <form action="/saveUser" method="post">username<input type="text" name="username"/><br>password<input type="text" name="password"/><br><input type="submit" value="Button"/><br> </form> </body> </html> ?
-
在控制層添加請求映射
?@RequestMapping("/saveUser")public String saveUser(User user) {System.out.println(user);return "success";}
-
運行后在頁面上輸入用戶名和密碼點擊提交即可將數據傳遞給服務器
-
集合綁定參數
為了方便將數據綁定到List集合和Map集合,這里設置兩個用戶名和密碼,一個用List集合綁定,一個用Map集合綁定
-
修改index.jsp頁面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>Collection Binding Parameters</title> </head> <body> <h1>Collection and Map Binding Parameters</h1> <form action="/mapUser" method="post">User: <input type="text" name="list[0].username"/><br>Password: <input type="password" name="list[0].password"/><br>User: <input type="text" name="map['one'].username"/><br>Password: <input type="password" name="map['one'].password"/><br><input type="submit" value="Submit"/><br> </form> </body> </html>
-
編寫集合實體類
package com.pyb.pojo; import java.util.List; import java.util.Map; /*** @version 1.0* @Author 彭彥彬* @Date 2025/1/9 21:13* @注釋*/ public class mapUser {private String username;private String password; ?List<mapUser> list;Map<String,mapUser> map; ?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;} ?public List<mapUser> getList() {return list;} ?public void setList(List<mapUser> list) {this.list = list;} ?public Map<String, mapUser> getMap() {return map;} ?public void setMap(Map<String, mapUser> map) {this.map = map;} ?@Overridepublic String toString() {return "mapUser{" +"username='" + username + '\'' +", password='" + password + '\'' +", list=" + list +", map=" + map +'}';} }
-
在控制層添加請求映射
? ?@RequestMapping(path="/mapUser") ? ? //請求映射public String mapUser(mapUser mapuser){System.out.println(mapuser);return "success";}
-
運行后在頁面上輸入用戶名和密碼點擊提交即可將數據以集合形式傳遞給服務器
解決中文亂碼
在綁定參數的時候,當有中文時會出現亂碼,而SpringMVC提供了解決方法,在web.xml添加過濾器進行配置即可