List<String> 如何传参

简介: List<String> 如何传参

分析

在前端中,可以通过不同的方式将参数传递给List。以下是几种常见的方法:

使用JavaScript数组:在前端应用程序中,可以使用JavaScript数组来存储字符串列表。您可以通过将字符串添加到数组中,然后将数组作为参数传递给后端。

var stringList = ["string1", "string2", "string3"];  
// 将数组转换为JSON格式并发送给后端  
var jsonStringList = JSON.stringify(stringList);  
// 使用AJAX或其他HTTP请求方法将JSON字符串发送给后端

使用表单数据:如果您正在使用Web表单,可以将字符串列表作为表单数据的一部分进行传递。您可以在表单中使用多个输入字段来存储字符串,并将其作为参数提交给后端。

<form action="/backend-url" method="POST">  
  <input type="text" name="stringList[]" value="string1">  
  <input type="text" name="stringList[]" value="string2">  
  <input type="text" name="stringList[]" value="string3">  
  <input type="submit" value="Submit">  
</form>

在后端中,您可以接收和处理表单数据,并将其转换为List。

3. 使用JSON数据:如果您正在使用现代Web技术栈(如React、Angular或Vue.js),您可以使用HTTP请求库(如Axios、Fetch等)将JSON数据发送给后端。您可以将字符串列表作为JSON对象的一部分进行传递。

var stringList = ["string1", "string2", "string3"];  
// 将数组转换为JSON格式  
var jsonStringList = JSON.stringify({ stringList: stringList });  
// 使用HTTP请求库将JSON字符串发送给后端  
axios.post('/backend-url', jsonStringList)  
  .then(response => {  
    // 处理响应数据  
  })  
  .catch(error => {  
    // 处理错误  
  });

在后端中,您可以接收和处理JSON数据,并将其转换为List。

这些方法中的选择取决于您的前端技术栈和后端API的实现方式。根据您的具体需求,选择最适合的方式来传递参数给List。

实战

get请求

代码

@GetMapping("/position/data/download")
    Void positionDataDownload(HttpServletResponse response,@RequestParam List<Long> param);

postman

post请求

@PostMapping("/position/data/download")
    Void positionDataDownload(HttpServletResponse response,@RequestBody("param")List<Long> param);

postman

总结

在Spring MVC框架中,可以使用@RequestBody注解将前端传递的List参数绑定到后端的控制器方法参数上。

具体而言,当前端发送一个HTTP请求到后端时,Spring MVC的DispatcherServlet会接收到该请求并将其转发给相应的控制器方法。如果该方法的参数是一个List类型,Spring MVC会自动将请求中的参数值解析为List对象并传递给控制器方法。

在解析List参数时,Spring MVC会将请求参数中的值按照逗号分隔,并将其转换为String类型的列表。例如,如果请求参数中的值为"value1,value2,value3",则Spring MVC会将其解析为一个包含三个元素的List对象。

需要注意的是,为了使用@RequestBody注解,需要在控制器方法的参数前加上@RequestBody注解,并在前端发送请求时将参数值以JSON格式进行传递。例如,可以使用jQuery的$.ajax()方法发送一个POST请求,并将参数值以JSON格式进行传递:

$.ajax({  
  url: '/controller/method',  
  type: 'POST',  
  contentType: 'application/json',  
  data: JSON.stringify(['value1', 'value2', 'value3']),  
  success: function(result) {  
    // 处理响应结果  
  }  
});

在后端控制器方法中,可以使用@RequestBody注解将前端传递的JSON格式的参数值转换为List对象:

@RequestMapping(value = "/controller/method", method = RequestMethod.POST)  
public String method(@RequestBody List<String> params) {  
  // 处理参数并返回结果  
}

其他方法:

当然,除了Spring MVC的@RequestBody注解,还有其他方案可以接收前端传递的List参数。以下是两种可能的方案:

使用@RequestParam注解:在控制器方法中使用@RequestParam注解,并指定参数名为"stringList",即可获取请求中的"stringList"参数值。需要注意的是,请求中的参数值必须是以逗号分隔的字符串。

@RequestMapping(value = "/controller/method", method = RequestMethod.POST)  
public String method(@RequestParam("stringList") List<String> params) {  
  // 处理参数并返回结果  
}

使用@PathVariable注解:在控制器方法中使用@PathVariable注解,并指定参数名为"stringList",即可获取URL中的占位符参数值。需要注意的是,URL中的占位符必须是以逗号分隔的字符串。

@RequestMapping(value = "/controller/{stringList}", method = RequestMethod.GET)  
public String method(@PathVariable("stringList") List<String> params) {  
  // 处理参数并返回结果  
}

这些方案都可以将前端传递的List参数转换为后端控制器方法中的参数。具体选择哪种方案取决于请求的媒体类型、请求参数的位置以及实际业务需求。

目录
相关文章
|
29天前
|
NoSQL Java Redis
redis-学习笔记(string , hash , list , set , zset 前置知识)
redis-学习笔记(string , hash , list , set , zset 前置知识)
10 0
redis-学习笔记(string , hash , list , set , zset 前置知识)
|
1月前
|
NoSQL Java Unix
Redis基础操作 String List
Redis基础操作 String List
18 0
|
1月前
|
JSON 数据格式
使用 Gson 将 Map、List等转换为json string
使用 Gson 将 Map、List等转换为json string
27 0
|
1月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
69 0
|
1月前
|
前端开发 Java 测试技术
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
25 0
|
1月前
|
Java API
利用Stream流List<实体类>转List<String>或List<String>转List<String>
利用Stream流List<实体类>转List<String>或List<String>转List<String>
121 0
|
1月前
|
Java 测试技术
List<实体类>转map<String,String>及重复处理
List<实体类>转map<String,String>及重复处理
65 0
|
1月前
|
Java 数据库连接 mybatis
mybatis 返回List<String>
mybatis 返回List<String>
169 0
|
3天前
|
存储 安全 Java
Java List详解
Java List详解
|
4天前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
10 3