post表单请求,getBean() ,无法将数据封进实体类

请教一下: jFinal项目.表单post提交,controller中getBean无法将数据封为对应的Bean对象.getPara(name)和getBean(Param.class,"")都无效.getRawData()可以获得数据.项目源码.https://xy0inue.lanzous.com/iOWNvf21xpg

评论区

shisan27

2020-07-28 11:50

jFinal 4.9 版本

JFinal

2020-07-28 11:52

先看一下控制台输出的 jfinal action report 中的 parameter 这一栏,如果是 key = value 这种格式,才可以使用 getBean、getModel、getPara ,否则需要使用 getRawData()

要这么用:
String json = getRawData();
Xxx xxx = FastJson.getJson().parse(json, Xxx.class);

原因是,你提交的数据是 json 形式,而不是 form 表单的 key = value 形式

这个纯属客户端提交的问题。 客户端以什么格式提交,服务端就要使用与之格式相对应的方式获取

shisan27

2020-07-28 12:25

是PostMan 进行的表单提交.

JFinal

2020-07-28 23:10

@shisan27 PostMan 可以选择提交格式,例如 x-www-form-urlencoded ,而你可能选择的是别的格式,才碰到了这个问题

registernet

2020-08-01 18:19

建议继承ParaGetter去处理各种入参的转换后再注入就行了.ParaGetter需要注册后使用ParaProcessorBuilder.me.regist(需要转换成的类.class, MyParaGetter.class, null);

shisan27

2020-11-17 14:34

谢谢波总!