jfinal 批量数据保存,传入后台数组,后台是否有急速通用的参数接收方法?

例如:

JFinal action report -------- 2016-09-21 22:35:46 ------------------------------

Parameter   : InsertedRows[0][status]=P  InsertedRows[0][remarks]=新增数据  InsertedRows[0][link]=add  InsertedRows[0][iconCls]=fa-book  InsertedRows[0][name]=新增  

--------------------------------------------------------------------------------

后台如何方便将取值 映射到 Model中?

@JFinal

String[] array = getParaValues("key");

如果属性多,也不太方便。有没有简单的取值方法 把这个数组直接转成Model?

评论区

小飞象

2016-09-21 22:54

@JFinal Controller接收数组参数时,转为List[Model]或List[Bean]

JFinal

2016-09-21 23:00

尽量使用 getModel 获取整个对象,如果要同时获取到 List 这样的数据,可以在 controller 中创建一个 getModels(...) 方法,大体思路如下:
List ret = new ArrayList();
for (int i=0; i < size; i++) {
Xxx xxx = getModel(Xxx.class, "xxx[" + i + "]"); // 循环获取多个model对象
ret.add(xxx);

简单说就是通过 jfinal 已经提供的 getModel,进行循环,获取多个,页面生成的 name 需要精心设计一下,上例中的 "xxx[" + i "]" 是在指定 modelName 前缀,每次循环前缀不同即可,页面中 input 的 name是这样的形式:
name="xxx[0]"
name="xxx[1]"
这样在后端的 for 循环中就可以动态拼接出前缀了,注意循环中的 size,可以是通过 getParaValues(...).lenght 得到,也可以在表单中单独用个变量传过来

小飞象

2016-09-22 10:56

@JFinal , 如果是这种形式InsertedRows[0][link]=add ,何解?

JFinal

2016-09-22 10:58

@小飞象 InsertedRows[0][link]=add 改成 InsertedRows[0].link=add 即可

JFinal

2016-09-22 10:59

InsertedRows[n] 这个相当于是 modelName,是在 getModel 或 getBean 时可以指定的一个前缀,这两个方法都支持传入第二个参数,如:getModel(Xxx.class, "yyy"),这里的第二个参数 yyy 就是在表单中的前缀 name="yyy.attName"

小飞象

2016-09-22 11:08

这种形式是前端框架决定的,@JFinal 能不能扩展下com.jfinal.core.Injector
String modelNameAndDot = StrKit.notBlank(beanName) ? beanName + "." : null; modelNameAndDot 这个作为一个参数传入,这样使用会不会极速方便呢?

JFinal

2016-09-22 11:09

@小飞象 jfinal 2.3 考虑添加 getModels 以及 getBeans 支持一下

小飞象

2016-09-22 11:11

@JFinal 感谢波总!!!

lyh061619

2016-09-22 22:34

@JFinal 超赞!^_^!!

我爱编程

2017-02-09 15:08

@JFinal JFinal3.0好像还没有加入

du888

2017-11-08 09:26

@JFinal 3.2上面也没有加入

hwj13079

2017-11-08 09:31

页面怎么取值呢?

hwj13079

2017-11-08 09:31

急哈

ukhack

2018-02-01 18:09

@JFinal 谢谢您提供的思路,但是以 application/x-www-form-urlencoded 格式提交的数据,都会转成 data[0][key] ,在后端不能变成 data[0].key ,我尝试了很多方法都不行

马小酱

2018-08-06 10:05

@JFinal jfinal 3.4好像还没有加入

sissi

2019-03-27 11:09

@JFinal 那么请问页面的name值怎么设置

热门反馈

扫码入社