页面form表单多个table传递参数后台接收问题

YG7R)61}$I4{NJD%2}}F$$U.jpg

类似这样前台form表单内有多个table传递数据,后台接收的问题,相当于前台有多个model 而后台接收请求只有一个getModel来接收单个的实体 无法对应生成List<model>形式的,之前的解决方法是 通过name属性 用getParaValues来遍历自己新建model存到list 但是现在功能是页面动态生成标签 name属性里的值赋值麻烦,还得防止后台建立model对象时 把其它table的数据保存到非自身的model

如图所示其实是3个table 对应后台的3个实体 如何处理能方便简单点,之前见波哥推荐自写一个getModels() 还有其他简单的解决方式么?@Jfinal

评论区

忧郁囧

2018-08-17 14:37

正好同样碰到这个问题,也卡在接收多个Model的问题上

JFinal

2018-08-17 16:39

用 modelName 前缀来区分一下即可,例如:
name="userAaa.name"
name="userBbb.name"

后台接收的时候:
getModel(User.class, "userAaa");
getModel(User.class, "userBbb");

忧郁囧

2018-08-17 17:02

@JFinal 波哥,你的解决方法我和楼主都试过 因为Table内的数据有多条 需要循环 我的方法是这样
#for(u : users)
input标签: name="user#(for.index).id" value="u.id"
#end
现在的问题是需要通过button一类的标签 通过点击事件修改这个Table的条数 而点击事件没办法动态修改#(for.index)这个值 也就导致name没法动态变更 后台的循环获取方式也就失效了 就想问问有没有什么获取Models的方法,因为发现如果前端name中直接写name="user.id"后台接收的字段值是以 user.id[]={1,2} 这种方式存储的,就想问问有没有比较方便的已存在的方法,只在后台进行处理来获取models

Don小浩

2018-08-17 17:21

@Jfinal @忧郁囧 波哥 你说的方法我之前确实都是这样做的 但是现在的情况是 页面动态按钮添加一个标签 而不是后台数据前台遍历生成的 这样就造成了name很难处理的问题 如果前台按钮动态添加了一组新的table 我得用选择器判断然后给出正确的下标赋值给name 但是这样做既麻烦 也可能会出问题 所以想问问有什么好些的方法

wulala

2018-10-19 09:54

@Don小浩 楼主 最后得到解决了吗?求po代码

Don小浩

2018-10-19 10:50

@wulala 我是在前台将数据编辑json串传给后台直接解析的,你也可以利用model[index]这种 比较麻烦 我以前这么做过

热门反馈

扫码入社