render相关

原项目查询接口正常返回界面,现增加需求,别的项目需要接口访问拿到原接口返回的json数据而不是html页面,

即 原系统需要返回render("eval.html");

新需求需要返回renderJson();

我试着添加拦截器 当拦截接口参数中 含有“返回json的标识”时 设置接口返回

inv.setReturnValue(JsonRender.class); 但仍然返回页面数据,请问如何解决,先行谢过,望百忙中抽空解答.

评论区

freejava09

2018-10-31 14:54

也试过自定义render 但是需要传参来判断内部返回哪种,对原系统改动量太大,所以没有使用该方案

JFinal

2018-10-31 16:02

在拦截器中通过 inv.getController().renderJson() 来解决,注意要放在 inv.invoke() 之后:
inv.invoke();
inv.getController().renderJson();

freejava09

2018-10-31 17:39

@JFinal 多谢波哥 ! 抱拳了

JFinal

2018-10-31 19:18

@freejava09 使用全局拦截器,然后可以判断客户端类型,一类客户端 render 保持不变,另一类客户端 inv.getController().renderJson()

一套代码,同时解决两个需求

热门反馈

扫码入社