java后台怎么接收有集合的类_java后台controller能否直接接
收list
修改下问题,最下⽅为我项⽬的详细代码,精简了⼀下,去除了state属性,代码顺序最开始,基础数据类型int,从单个int到int数组,到intarraylist,
单个stirng string数组, string list, arraylist,
单个Tag对象,Tag对象数组,list,arraylist
我⽹上了很多例⼦,例⼦中的controller直接接收list都是接受的字符串类型,list,并没有复杂对象类型的例⼦
⽬前我所知道的两种解决办法就是
1.新建⼀个vo类,⾥⾯有⼀个list属性,controller接受这个类
2.接受字符串,将字符串转为list
但是如果我就是想直接接受list呢?
这是我的类:
public class Tag {
int id;
String name;
int state;
}
我前台传给后台的数据格式是这个样⼦的
[{"id":1,"name":"123","state":0},{"id":3,"name":"456","state":0}]
我后台能否直接在⼊参⾥⾯⽤list接收呢?
我弄了半天也不⾏;
那么⼤家平常都是如何处理的呢,都是⼊参接收字符串,然后⽤jackson等框架再转成list吗
或者是我把⼊参改成什么样⼦后台就可以接受了呢,我记得之前遇到过⼀次这个问题,从前台遍历对象然后弄得,但是代码没了,也忘了,但是那样弄也挺⿇烦的,最简单的⽅法是什么呢
分割线
pom⽂件:
4.0.0
demo
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
parse error怎么解决org.springframework.boot
spring-boot-devtools
org.springframework.boot
spring-boot-starter-thymeleaf
kohtml
nekohtml
1.9.22
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-maven-plugin
配置⽂件:
server:
port: 8088
spring:
thymeleaf:
mode: LEGACYHTML5
datasource:
url: jdbc:mysql://localhost:3306/ek username: root
password: 1212
driver-class-name: sql.jdbc.Driver jpa:
database: MYSQL
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect Tag类
ity;
public class Tag {
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Tag [id=" + id + ", name=" + name + "]"; }
}
前台和后台从简单到复杂⼀点⼀点来,各阶段代码:version 1: 单个int类型,
前台代码:
index
测试
function commit(){
$.ajax({
type:"post",
url: 'add',
data:{
param:1
},
success:function(data){
console.log(data);
}
})
}
后台代码:
ller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class HelloController {
@RequestMapping("")
public String Hello(ModelMap map) {
return "index";
}
@ResponseBody
@RequestMapping(value = "add")
public String add(int param) {
System.out.println("param:" + param);
return "成功";
}
}
前端控制台数据格式:
param:1
后台控制台输出
param:1
version2:多个int类型;
将data:{
param:1
},
改为:
data:{
param:[1,2,3]
},
后台代码改为:
@ResponseBody
@RequestMapping(value = "add")
public String add(@RequestParam("param[]") int[] param) { System.out.println("param:" + param);
System.out.println("param:" + String(param)); return "成功";
}
后台⼊参改为:@RequestParam("param[]") int[] param
则可以正确接收,为param则不⾏
前台控制台数据格式:
param[]:1
param[]:2
param[]:3
后台控制台输出:
param:[I@55a3f9bb
param:[1, 2, 3]
version3:后台使⽤list接受
前台代码不变,
后台代码改为:
@ResponseBody
@RequestMapping(value = "add")
public String add(@RequestParam("param[]") List param) { System.out.println("param:" + param);
return "成功";
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论