2019-04-20 00:02

controller.getCookie(...) 是去读取浏览器发送过来的 cookie 值,并不是你通过 controller.setCookie(...) 过来的值

这个是 java web 规范决定的,不是 jfinal 的行为

解决这个问题的办法是:既然你都可以 controller.setCookie(...) 了,那么你本身就持有了这个 cookie 值,通过变量传递过来使用即可

2019-04-20 00:00

后台管理部分用的 bootstrap + jquery

前台是手写的 css、html 加上 jquery

2019-04-19 23:57

RedisPlugin 在一开始的定位就是作为一个中心化存放数据的地方,没有想过支持分布式与集群

在 jfinal 中使用 RedisPlugin 的大多数据场景为了支持应用项目的集群与分布式,而不是 reids 的集群与分布式

2019-04-19 23:54

RedisPlugin 仅仅是对 Jedis 做了极薄封装,并未涉及分布式

2019-04-19 23:52

做一个 handler ,将用户的请求通过 OkHttp 这类工具做个中转就可以了

2019-04-19 11:54

根据文档配置一下 undertow.hotSwapClassPrefix=...

2019-04-19 09:20

在这个页面点击一下刷新会发现并不会发生这种事

这个问题只能通过单步调试去看看到底发生了什么

2019-04-18 16:12

本质是因为自从 jfinal 3.6 版本开始,为用户自动调用了下面的代码:
activeRecordPlugin.getEngine().setToClassPathSourceFactory();

所以 sql 管理所使用的模板引擎会默认去 class path 与 jar 包中寻找 sql 文件

感谢分享

2019-04-18 15:48

jetty-server 升级到 2019.3 这个版本

或者将 jetty-server 改用成 jfinal-undertow

jfinal undertow 是目前推荐的方式:
https://www.jfinal.com/doc/1-2

2019-04-18 15:47

异常提示:Illegal base64 character 3a

数据不符合 base64 的规则

2019-04-18 12:14

先将 nginx 停掉:
nginx -s stop

然后用纯 jfinal 项目做好这些事情,目的是先在避免 nginx 干扰的情况下理清认知

搞定以后,再将 nginx 加回来

2019-04-18 12:13

拿到 jfinal 中的 QrCodeRender.java 源码,然后将其中输出的地点从 OutputStream 改成你自己的 FileOutputStream 即可

也即将 QrCodeRender 输出的目标改成输出到你的文件之中

2019-04-18 10:58

要配置一下:
routes.setMappingSuperClass(true);

在升级文档中有过说明:
https://www.jfinal.com/doc/14-1

这是一个性能优化,默认不对超类中的方法进行迭代生成路由

如果希望既可以对超类进行路由映射,又能保留这个优化,可以在其子路由中配置:
public class SubRoutes extends Routes {
public void config() {
setMappingSuperClass(true);
add(...);
}
}

上面的 SubRoutes 是子路由,只在这个子路由中其添加的 controller 进行超类映射,其它路由不影响,最后配置:
public void configRoute(Routes me) {
me.add(new SubRoutes());
me.add(new OtherRoutes());
}

一般情况,你要省事的话,直接:
public void configRoute(Routes me) {
me.setMappingSuperClass(true);
me.add(...);
}

2019-04-18 10:50

用 proguard 对你的代码进行处理,反编译出来的代码不可读