新建实体类,User和UserList
1 package com.yas.entity; 2 3 import java.util.Date; 4 5 public class User { 6 private Integer id; 7 private String name; 8 private Boolean gender; 9 private Date birth; 10 11 public User() { 12 } 13 14 public User(Integer id, String name, Boolean gender, Date birth) { 15 this.id = id; 16 this.name = name; 17 this.gender = gender; 18 this.birth = birth; 19 } 20 21 public Integer getId() { 22 return id; 23 } 24 25 public void setId(Integer id) { 26 this.id = id; 27 } 28 29 public String getName() { 30 return name; 31 } 32 33 public void setName(String name) { 34 this.name = name; 35 } 36 37 public Boolean getGender() { 38 return gender; 39 } 40 41 public void setGender(Boolean gender) { 42 this.gender = gender; 43 } 44 45 public Date getBirth() { 46 return birth; 47 } 48 49 public void setBirth(Date birth) { 50 this.birth = birth; 51 } 52 53 @Override 54 public String toString() { 55 return "User{" + 56 "id=" + id + 57 ", name='" + name + '\'' + 58 ", gender=" + gender + 59 ", birth=" + birth + 60 '}'; 61 } 62 }
1 package com.yas.entity; 2 3 import java.util.ArrayList; 4 public class UserList { 5 private ArrayList<User> users; 6 7 public ArrayList<User> getUsers() { 8 return users; 9 } 10 11 public void setUsers(ArrayList<User> users) { 12 this.users = users; 13 } 14 }
建立用于测试的Controller:ParamController
1 package com.yas.controller; 2 3 import com.yas.entity.User; 4 import com.yas.entity.UserList; 5 import org.springframework.stereotype.Controller; 6 import org.springframework.web.bind.annotation.PathVariable; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.RequestParam; 9 10 import java.util.Date; 11 12 @Controller 13 @RequestMapping("/param") 14 public class ParamController { 15 16 // http://localhost:8080/param/test1?id=1&name=zhangsan&gender=true&birth=2021/10/26 17 @RequestMapping("/test1") 18 public String test1(@RequestParam("id") Integer id, 19 @RequestParam("name") String name, 20 @RequestParam("gender") Boolean gender, 21 @RequestParam("birth") Date birth){ 22 System.out.println(id); 23 System.out.println(name); 24 System.out.println(gender); 25 System.out.println(birth); 26 27 return "hello"; 28 } 29 30 // http://localhost:8080/param/test2?id=1&name=zhangsan&gender=true&birth=2021/10/26 31 @RequestMapping("/test2") 32 public String test2(User user){ 33 System.out.println(user.getId()); 34 System.out.println(user.getName()); 35 System.out.println(user.getGender()); 36 System.out.println(user.getBirth()); 37 38 return "hello"; 39 } 40 41 // http://localhost:8080/param/test3?hobby=football&hobby=basketball&hobby=volleyball 42 @RequestMapping("/test3") 43 public String test3(@RequestParam("hobby") String[] hobby){ 44 for(String h : hobby){ 45 System.out.println(h); 46 } 47 return "hello"; 48 } 49 50 // http://localhost:8080/param.jsp 51 @RequestMapping("/test4") 52 public String test4(UserList userList){ 53 if(userList!=null) { 54 for (User user : userList.getUsers()) { 55 System.out.println(user.toString()); 56 } 57 } 58 return "hello"; 59 } 60 61 // http://localhost:8080/param/test5/1 62 @RequestMapping("/test5/{id}") 63 public String test5(@PathVariable("id") Integer id){ 64 System.out.println(id); 65 return "hello"; 66 } 67 68 // http://localhost:8080/param/test6/1/zhangsan 69 @RequestMapping("/test6/{id}/{name}") 70 public String test5(@PathVariable("id") Integer id, 71 @PathVariable("name") String name){ 72 System.out.println(id); 73 System.out.println(name); 74 return "hello"; 75 } 76 }
建立测试用jsp页面
<%-- Created by IntelliJ IDEA. User: yanga Date: 2021/10/26 Time: 11:30 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>prarm.jsp</title> </head> <body> <%-- <form action="${pageContext.request.contextPath}/param/test3">--%> <%-- <input type="checkbox" name="hobby" value="football"> 足球--%> <%-- <input type="checkbox" name="hobby" value="basketball"> 篮球--%> <%-- <input type="checkbox" name="hobby" value="volleyball"> 排球--%> <%-- <input type="submit" value="提交">--%> <%-- </form>--%> <form action="${pageContext.request.contextPath}/param/test4" method="post"> id:<input type="text" name="users[0].id" value="1"><br> name:<input type="text" name="users[0].name" value="zhangsan"><br> gender:<input type="text" name="users[0].gender" value="true"><br> <hr> id:<input type="text" name="users[1].id" value="2"><br> name:<input type="text" name="users[1].name" value="lisi"><br> gender:<input type="text" name="users[1].gender" value="false"><br> <input type="submit" value="提交"> </form> </body> </html>
修改web.xml,添加post请求包含中文的编码处理:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:mvc.xml</param-value> </init-param> <!-- <load-on-startup>1</load-on-startup> --> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置springMVC编码过滤器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 设置过滤器中的属性值 --> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <!-- 启动过滤器 --> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <!-- 过滤所有请求 --> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>