
简单数据类型一般处理的是参数个数比较少的请求,如果参数比较多,那么后台接收参数的时候就比较复杂,这个时候我们可以考虑使用POJO数据类型。
POJO参数:请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数
POJO参数接收,前端GET和POST发送请求数据的方式不变。
==请求参数key的名称要和POJO中属性的名称一致,否则无法封装。==
举个简单的例子,如果前端需要获取用户的爱好,爱好绝大多数情况下都是多个,如何发送请求数据和接收数据呢?
数组参数:请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型即可接收参数

数组能接收多个值,那么集合是否也可以实现这个功能呢?





将pom.xml中多余的内容删除掉,再添加SpringMVC需要的依赖
- "1.0" encoding="UTF-8"?>
-
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0modelVersion>
-
- <groupId>com.itheimagroupId>
- <artifactId>SpringMVCartifactId>
- <version>1.0-SNAPSHOTversion>
- <packaging>warpackaging>
-
- <name>SpringMVC Maven Webappname>
-
- <url>http://www.example.comurl>
-
- <properties>
- <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
- <maven.compiler.source>1.8maven.compiler.source>
- <maven.compiler.target>1.8maven.compiler.target>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <version>4.11version>
- <scope>testscope>
- dependency>
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>javax.servlet-apiartifactId>
- <version>3.1.0version>
- <scope>providedscope>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>5.2.1.RELEASEversion>
- dependency>
- dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.tomcat.mavengroupId>
- <artifactId>tomcat7-maven-pluginartifactId>
- <version>2.1version>
- <configuration>
- <port>80port>
- <path>/path>
- configuration>
- plugin>
- plugins>
- build>
-
- project>


- package com.itheima.config;
-
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
-
- @Configuration
- @ComponentScan("com.itheima.controller")
- public class SpringmvcConfig {
- }
- package com.itheima.controller;
-
- import com.itheima.domain.User1;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
-
- import java.util.Arrays;
- import java.util.List;
-
- //@Controller:Springmvc的bean标志
- @Controller
- //@RequestMapping("/user")
- public class UserController {
- @RequestMapping("/save")
- @ResponseBody
- public String save(){
- System.out.println("郭浩康第一个Sprintmvc项目创建成功");
- return "{spring1save()...}";
- }
- @RequestMapping("/delete")
- @ResponseBody
- public String delete(){
- System.out.println("");
- return "{detete删除运行成功}";
- }
- //普通参数
- @RequestMapping("/kk")
- @ResponseBody
- public String kk(String name, @RequestParam("age1") int age){
- System.out.println("收到参数:"+name);
- System.out.println("收到参数:"+age);
- return "{kk成功}";
- }
- //POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
- @RequestMapping("/kk1")
- @ResponseBody
- public String pojoParam(User1 user){
- System.out.println("pojo参数传递 user ==> "+user);
- return "{'module':'pojo param'}";
- }
- //数组参数:同名请求参数可以直接映射到对应名称的形参数组对象中
- @RequestMapping("/kk2")
- @ResponseBody
- public String arrayParam(String[] likes){
- System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes));
- return "{'module':'array param'}";
- }
- //集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据
- @RequestMapping("/kk3")
- @ResponseBody
- public String listParam(@RequestParam List
likes) { - System.out.println("集合参数传递 likes ==> "+ likes);
- return "{'module':'list param'}";
- }
- }
将web.xml删除,换成ServletContainersInitConfig
- package com.itheima.config;
-
- import org.springframework.web.context.WebApplicationContext;
- import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
- import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
-
- public class ServletConfig extends AbstractDispatcherServletInitializer {
- //加载Springmvc容器
- @Override
- protected WebApplicationContext createServletApplicationContext() {
- AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
- ctx.register(SpringmvcConfig.class);
- return ctx;
- }
- //设置请求处理
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
- //加载Spring容器
- @Override
- protected WebApplicationContext createRootApplicationContext() {
- return null;
- }
- }
后台
