jfinal intercept中获取参数异常

action中获取参数:

String timestampt = getPara("timestampt");

可以正常取到。

可是intercept中:

String timestampt = inv.getController().getPara("timestampt");

怎么是null。

波总帮忙看下,怎么取值啊。谢谢了!@jfinal

评论区

JFinal

2017-10-03 09:49

controller 中的 getPara(....) 与 inv.getController().getPara(...) 是完全一样的,因为通过 inv.getController() 就是获取到了 controller

获取到 null,只要观测一下控制台输出的 jfinal action report 的 parameter 一栏有没有这个参数即可,如果没有那么肯定为 null

abc222

2017-10-03 13:53

@JFinal 波总,按刚才的思路我测试了代码:
[DEBUG]-[Thread: qtp1543237999-32]-[com.jcbase.controller.waterapp.interceptor.AskInterfaceInterceptor.intercept()]: url:/waterBase/getOnePic
interceptor中取的参数 userid:null
controller中取的参数 userid:1
Sql: insert into `sys_log`(`uid`, `start_time`, `method_name`, `err_msg`, `spend_time`, `ip`, `err_code`, `from`, `class_name`, `url`) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

JFinal action report -------- 2017-10-03 13:52:18 ------------------------------
Url : POST /waterBase/getOnePic
Controller : com.jcbase.controller.waterapp.WaterBaseController.(WaterBaseController.java:1)
Method : getOnePic
Interceptor : com.jcbase.core.auth.interceptor.SysLogInterceptor.(SysLogInterceptor.java:1)
com.jcbase.controller.waterapp.interceptor.AskInterfaceInterceptor.(AskInterfaceInterceptor.java:1)
Parameter : sign=a userid=1 token=1 timestampt=aa
可以看到action report 的 parameter 一栏有userid参数,controller可以取到,interceptor取到的为null。

abc222

2017-10-03 13:55

@jfinal 波总 之前看到这个:String postData = HttpKit.readData(inv.getController().getRequest());
这样确实可以取出来string,可是如果里面有上传文件,就不是标准的json字符串了。
所以看能完善下不,让inv.getController().getPara(...)也可以取到对应的参数。

JFinal

2017-10-03 17:55

@abc222 如果有上传文件,先调用一次 getFile(...) 系列方法,在手册上有红色字体强调过

abc222

2017-10-04 17:19

热门反馈

扫码入社