关于render重写问题

最近在做公司的框架,是基于jfinal的,现在有一个需求,我需要在controller当中输出json时自动加上我需要的字段,比如加上token,我最理想的就是想在我的控制器当中可以使用renderTokenJson()这种自定义的render,请教能不能实现,如何实现?谢谢

评论区

JFinal

2021-01-27 14:56

继承一下你需要用到的 Render,覆盖父类中的 render() 方法,放入自己的代码,然后用的时候这样:
render(new MyRender(....));

如果你希望在 render(String ...) 中用上 MyRender,可以继承 RenderFactory 覆盖 getRender(...) 来实现,最后要配置一下:
me.setRenderFactory(new MyRenderFactory());

你还可以在 BaseController extends Controller 中通覆盖或者新建 render 方法来用上你的 MyRender

海哥

2021-01-27 15:13

我建议这个都不需要重写 render,支持重写 Controller 就可以了,一般 API 都是
renderJson(Map) 或者 renderJson(Ret) 重写这两个方法,然后在 Map 或者 Ret 里添加你自己的数据就可以了

spring0563

2021-01-27 15:25

谢谢指导

久伴轻尘

2021-01-27 15:46

@spring0563 https://gitee.com/jbqc/wish/blob/master/src/main/java/com/jiubanqingchen/wish/framework/render/renderFactory/WishRenderFactory.java
我这里有个例子可以看看

山东小木

2021-01-28 21:15

在response header中加上token就好了