springboot怎么把数组从html中传到controller
时间: 2024-04-14 08:30:55 浏览: 136
要将数组从HTML传递到Spring Boot的控制器(Controller),可以使用表单提交或AJAX请求。下面分别介绍这两种方法的实现方式。
1. 表单提交方式:
- 在HTML中,使用`<form>`标签包裹表单元素,并设置`method="POST"`和`action`属性指向控制器的URL。
- 在表单中添加一个名为`name`的输入框,并使用`name`属性命名,多个输入框的`name`属性值相同,形成一个数组。
- 在控制器的处理方法中,将方法参数命名为与输入框的`name`属性相同的数组参数,并用`@RequestParam`注解进行绑定。
以下是一个示例代码:
```html
<!-- HTML -->
<form method="POST" action="/submit">
<input type="text" name="names" />
<input type="text" name="names" />
<input type="text" name="names" />
<button type="submit">提交</button>
</form>
```
```java
// Controller
@PostMapping("/submit")
public String submitForm(@RequestParam("names") String[] names) {
// 处理数组数据
// ...
return "success";
}
```
2. AJAX请求方式:
- 在HTML中,使用JavaScript发起一个AJAX POST请求到控制器的URL,并将数组数据作为请求体(body)发送。
- 在控制器的处理方法中,将方法参数命名为与请求体中数组数据对应的数组参数,并用`@RequestBody`注解进行绑定。
以下是一个示例代码:
```html
<!-- HTML -->
<script>
var names = ["John", "Jane", "Bob"];
var xhr = new XMLHttpRequest();
xhr.open("POST", "/submit", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 请求完成,处理响应数据
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify(names));
</script>
```
```java
// Controller
@PostMapping("/submit")
public String submitArray(@RequestBody String[] names) {
// 处理数组数据
// ...
return "success";
}
```
无论是表单提交还是AJAX请求,控制器的处理方法都会接收到前端传递的数组数据,并进行相应的处理。根据具体的业务需求,你可以在控制器中进行进一步的操作,例如将数组数据存储到数据库中或进行其他业务逻辑处理。
阅读全文