@Before(NotAction.class) public String getInMsgXml() { if (inMsgXml == null) { inMsgXml = HttpKit.readData(getRequest()); // 是否需要解密消息 if (ApiConfigKit.getApiConfig().isEncryptMessage()) { inMsgXml = MsgEncryptKit.decrypt(inMsgXml, getPara("timestamp"), getPara("nonce"), getPara("msg_signature")); } } if (StrKit.isBlank(inMsgXml)) { throw new RuntimeException("请不要在浏览器中请求该连接,调试请查看WIKI:http://git.oschina.net/jfinal/jfinal-weixin/wikis/JFinal-weixin-demo%E5%92%8C%E8%B0%83%E8%AF%95"); } return inMsgXml; }
为什么我在HttpKit中找不到readData()方法?是我jar包的导入方式不对吗?
不明白为什么要添加NotAction.class这个拦截器,是起什么作用的?
2:Controller 中的 public 无参方法会成为一个 action,外界可以通过 url 调用到,使用 NotAction 是为了让这类方法调用不到。 之所以要让 controller 中的 方法成为 public 的,是为了让 Interceptor 中可以调用到,例如这个 getInMsgXml() 方法,开发者可能要在拦截器中调用它做些更强大的扩展