MsgController抽象方法的不便

MsgController里把处理的微信消息和事件的方法都定义成了抽象方法,这就要求使用者必须实现全部方法,而且实现中必须调用render才行(不处理请求微信那边会提示该公众号暂时无法提供服务)。

但是实际情况中,使用者可能只关注谋几个消息或事件,这就需要在不关注的处理方法中都调用renderText(""); 感觉很不方法。

能不能再MsgController里都把处理方法默认实现成renderText(""),让使用者重写自己关注的处理方法呢?

评论区

JFinal

2016-07-19 23:57

jfinal weixin 提供了一个 MsgControllerAdapter 就是专门干这事的,你试试,不过貌似没有调用过 renderText(""),此入调有 renderNull() 是不是更合适? 此外你完全可以自己定义一个MyAdapterController extends MsgController实现你想要的功能,然后最终的 Controller 继承这个 MyAdapterController

loogn

2016-07-20 08:55

@JFinal 看到了有个MsgControllerAdapter,但是里面实现的方法是空的,没有对微信的请求做默认处理,应该还是会提示无法提供服务。因为没看过源码,想着会有个renderEmpty()的,不知道有个renderNumm(),Thinks!

JFinal

2016-07-20 10:04

@loogn MsgControllerAdapter 试用后给点反馈哈,看能否满足需求,尤其是测试一下 renderNull() 与 renderText("") 哪个更合理,jfinal weixin 好进行下改进,感谢支持

loogn

2016-07-20 18:01

@JFinal 微信文档这样说:“假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。”,所以我开始用的是renderText(""),又测试了renderNull(),也是可以了

JFinal

2016-07-20 21:21

@loogn 已做备忘,感谢回来分享

热门反馈

扫码入社