在 Java 后端使用 @RequestParam 接收来自前端的数组,你需要通过 URL 编码的方式将数组传递到后端。这里是一个示例,展示如何在 JSP 页面中使用 jQuery 发送数组,并在后端使用 @RequestParam 接收它。
此处只列举一种,还有别的格式,如果不明白可私信,知无不言
1. 在 JSP 页面中定义 jQuery 代码
在发送数组时,可以将数组的每个元素以特定的格式传递。例如,可以使用 key[]=value 的格式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Send Array to Java Backend</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
// 定义一个数组
var myArray = ['item1', 'item2', 'item3'];
// 构建参数字符串
var params = myArray.map(function(item, index) {
return 'myArray=' + encodeURIComponent(item);
}).join('&');
// 发送 AJAX 请求
$.ajax({
type: "POST", // 使用 POST 方法
url: "YourServletURL", // 替换为你的后端 URL
data: params, // 发送参数字符串
contentType: "application/x-www-form-urlencoded", // 设置内容类型
success: function(response) {
console.log("Response from server:", response);
},
error: function(error) {
console.error("Error:", error);
}
});
});
</script>
</body>
</html>
2. 在 Java 后端使用 @RequestParam
在后端,你可以使用 @RequestParam 接收数组参数。这里是一个使用 Spring MVC 的示例:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class YourController {
@PostMapping("/YourServletURL")
public String receiveArray(@RequestParam("myArray") String[] myArray) {
// 处理数组,例如打印
for (String item : myArray) {
System.out.println(item);
}
return "{\"status\":\"success\"}";
}
}
注意事项
URL 替换:将 YourServletURL 替换为你的实际 URL。
Content Type:确保在 AJAX 请求中设置 contentType 为 application/x-www-form-urlencoded。
数组参数名:@RequestParam(“myArray”) 中的参数名要与前端发送的参数名一致。
通过这种方式,你就可以在 Java 后端使用 @RequestParam 接收前端发送的数组。