jfinal后台怎样获取从前台传过来的数组

前台传的是一个数组,F12里面传的数组格式是【对象.属性】,对象后面没有下角标,并且这个对象不是model,是我自己创建的类似于临时表,jfinal后台怎样获取到这个数组

评论区

一个小菜鸟

2019-09-20 14:44

JFinal

2019-09-20 15:19

getModel 或者 getBean , 看一下文档

一个小菜鸟

2019-09-20 16:04

@JFinal 文档里面举得例子是表单,表单传的是个对象,我传的是个数组,而且文档举得例子太少,没有说明传的是数组的话,怎样后台怎样接收啊

JFinal

2019-09-20 16:11

@一个小菜鸟 先观察一下控制台输出的 jfinal actionn reporter 的 parameter 这一栏的数据格式

然后再选择具体的 get 系列方法,如果你是传的数组,需要 for 循环,例如:
List list = new ArrayList();
for (...) {
list.add(getBean(...));
}

要根据数据的格式,灵活搭配,这里的关键是,你要先掌握文件中的各种 get 方法的用法,然后观察 jfinal action reporter 的 parameter, 再合理选择

JFinal

2019-09-20 16:12

文档限于篇幅,只提供基础功能,基础功能的灵活动用与组合,才能实现千变万化的功能

关键在于要先掌握基础用法,才能想到如何组合使用

一只敲代码的猫

2021-01-27 15:00

@JFinal 我写了一个接口给别人使用,需要对方传一个List,对这种参数我怎么接收?

JFinal

2021-01-27 15:03

@一只敲代码的猫 看对方传的格式是什么, 建议传 json 过来,然后你只需要在服务端 :
String jsonString = getRawData();
Map map = FastJson.getJson().parse(jsonString, Map.class);

一只敲代码的猫

2021-01-27 16:00

@JFinal 期待是List list这种。这样就可以很方便 Db.batchSave(list, list.size());批量去保存

JFinal

2021-01-27 16:02

@一只敲代码的猫 得看对方怎么传递,对方不传 list,服务端也没办法

一只敲代码的猫

2021-01-27 16:06

@JFinal 约定好传list(Model) 这种

一只敲代码的猫

2021-01-27 16:07

@JFinal 这种的话服务端有好的接受此参数的方案吗?

JFinal

2021-01-27 16:12

@一只敲代码的猫 服务端目前只有 getBean、getModel、getPara、getRawData、形参注入五个系列的接收方式

你可以通过扩展 ParaGetter 来实现 List《Model》功能,也可以通过 getRequest() 得到 Request 对象以后,扩展实现

当然,最好还是让对方发送 json 数据,然后:
String jsonString = getRawData();
Map map = FastJson.getJson().parse(jsonString, Map.class);

因为 jsonString 转化成 List《Xxx》 的各类 json 工具已经成熟多年

一只敲代码的猫

2021-01-27 16:18

@JFinal 好的,感谢波总!!!

JFinal

2021-01-27 16:48

@一只敲代码的猫

客户端发 json 是很方便的, 有很多同学并不知道浏览器中通过 js 代码也能发 json 数据,其实很方便:
function ajaxPostJson(url, jsonString, callback) {
$.ajax({
url: url, data: jsonString,
contentType: 'application/json; charset=UTF-8', // 关键参数
type: 'POST', cache: false, dataType: 'json',
error: function(ret) {alert(ret.statusText);},
success: function(ret) {....}
});
}

注意关键参数是:
contentType: 'application/json; charset=UTF-8'

注意上面的例子依赖 jquery

一只敲代码的猫

2021-01-27 19:53

我这个需求的客户端是另一个程序在调用,我这边用jfinal提供一些接口给别人调用来crud数据。是不通过浏览器发送请求的,所以才有这个疑惑和需求。

热门反馈

扫码入社