首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
getBean接受不到数据
Willson_L
2019-08-14 14:17
前端传的数据是这样子的格式,但是getBean接受不到
项目:
JFinal
3
评论区
zeroabc
2019-08-14 14:21
巧了。我最近也在遇到这种数据的场景。
前端提交的数据用这个处理
https://stackoverflow.com/questions/1184624/convert-form-data-to-javascript-object-with-jquery/8407771#8407771
后台用下面的方法获取到前端提交过来的json字符串
String rawData = getRawData();
然后
AdminJsonPropertyContract jsonObj = JSON.parseObject(rawData, AdminJsonPropertyContract.class);
回复
zeroabc
2019-08-14 14:22
AdminJsonPropertyContract 我给一下我的给你代码你参考一下:
public class AdminJsonPropertyContract extends BaseVo {
private static final long serialVersionUID = -3852159614796521206L;
private PropertyContractObj propertycontract;
public class PropertyContractObj extends PropertyContract {
private List contractPositions = new ArrayList<>();
private List contractExtcosts = new ArrayList<>();
public List getContractPositions() {
return contractPositions;
}
public void setContractPositions(List contractPositions) {
this.contractPositions = contractPositions;
}
public List getContractExtcosts() {
return contractExtcosts;
}
public void setContractExtcosts(List contractExtcosts) {
this.contractExtcosts = contractExtcosts;
}
}
public PropertyContractObj getPropertycontract() {
return propertycontract;
}
public void setPropertycontract(PropertyContractObj propertycontract) {
this.propertycontract = propertycontract;
}
}
回复
zeroabc
2019-08-14 14:27
PropertyContract 为一张合同的数据。尖括号发不出来,我下面用圆括号代替尖括号。
一张合同下有多个岗位,即有一个contractPositions 数组,数据类型是List(PositionModel)
一张合同下有多个自定义款项,即有一个contractExtcosts 数组,数据类型是List(ExtcostModel)
回复
Willson_L
2019-08-14 14:40
@zeroabc
我现在也是这个干的,前端转成json字符串,然后后端在转回来。但是这么搞,总觉得怪怪的
回复
zeroabc
2019-08-14 14:45
@Willson_L
不怪吧。完全可行,我们项目现在由前端到后端的流程都通了
回复
JFinal
2019-08-14 15:01
@Willson_L
getBean、getModel 目前不支持这种格式的数据接收,目前支持 modelName.attribute 这种格式的数据
你要的支持可以自己写一个 getBeanList(...) 方法来实现,大致如下:
1:通过控制台输出的 jfinal action report 中的 parameter 这一样的参数的 key 来用好 getBean、getModel 帮助实现
2:用一个 for 循环来分步骤获取,在获取的时候注意参数的生成:
List ret = new ArrayList();
for (int i=0; i < size; i++) {
Team t = getBean("team[" + i + "]", true);
ret.add(t);
}
注意几点:
1:如果你的 Team 生成了 setter 方法可以使用 getBean,否则要使用 getModel
2: getBean、getModel 的第一个参数是动态生成的,里头有中扩号的生成,以及下标值的生成
3: getBean、getModel 的第二个参数传递 true,可以跳过一些类型转换之类的异常
4:size 值通过别的方式获取一下
回复
发送
我要反馈
热门反馈
扫码入社
前端提交的数据用这个处理
https://stackoverflow.com/questions/1184624/convert-form-data-to-javascript-object-with-jquery/8407771#8407771
后台用下面的方法获取到前端提交过来的json字符串
String rawData = getRawData();
然后
AdminJsonPropertyContract jsonObj = JSON.parseObject(rawData, AdminJsonPropertyContract.class);