打开支付宝首页搜“523966799”领红包,领到大红包的小伙伴赶紧使用哦!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

List<String> 如何传参

2024-6-20 11:14| 发布者: zhaojun917| 查看: 220| 评论: 0

摘要: 分析在前端中,可以通过不同的方式将参数传递给List。以下是几种常见的方法:使用JavaScript数组:在前端应用程序中,可以使用JavaScript数组来存储字符串列表。您可以通过将字符串添加到数组中,然后将数组作为参数 ...
 分析
在前端中,可以通过不同的方式将参数传递给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参数转换为后端控制器方法中的参数。具体选择哪种方案取决于请求的媒体类型、请求参数的位置以及实际业务需求。

关闭

站长推荐上一条 /7 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )

GMT+8, 2024-9-19 14:45 , Processed in 0.030256 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部