2018-05-27 22:05

有个小建议,writer.write 方法可以调用多次,避免用加号来连接字符串,可以提升性能

因为 jfinal enjoy 的 writer 内部是全程使用缓冲区的,会避免整个过程内存分配,大大在提升性能

2018-05-27 22:03

总体上来说,保障 key 的唯一性就可以了,参数直接 toString() 以后做 md5 是一个很好的办法,比 md5 更快的办法是直接使用 StrKit 中的 fnv64 算法来做

更改缓存可以简单让这个 cacheName 失效就可以,如果要精确控制 page 里头的某个 model 会很麻烦,不建议这么做

2018-05-27 21:57

看了一下代码,有一定的复杂度,但代码很精炼工整,博主功力很深啊

感谢你的分享,点赞 + 收藏

2018-05-27 21:53

@麻言 一直用 getPara 就可以了, HttpKit.readData(....) 仅用于 HttpClient OkHttp 这类 http 客户端将数据放在 http 请求体中的情况

2018-05-27 21:51

访问速度超快,赞一个

2018-05-27 21:50

分享越来越多了,jfinal 社区有希望了,感谢分享

2018-05-27 21:18

很高端的玩法,点赞收藏,感谢分享

2018-05-27 14:55

@snakelenas 在分享频道分享下哈 jfinal.com/share

2018-05-26 23:03

信息不全,无法精确定位

有一点可以知道,这个异常是因为你在模板中使用 value[index] 时这个 index 下标越界造成的

2018-05-26 23:01

补充一点,这个问题与是否是 jfinal 3.4 版本,绝然无关

因为与启动有关的代码已经三年以上没有动过了,是绝不可能有关的

2018-05-26 23:00

只要是 404 页面出来了 Powered by jetty , 就必然是 jfinal 没有启动成功

删除这个项目中的所有文件, 只保留 src 目录与 pom.xml 文件,然后当成 maven 项目再导入一次,让 eclispe / IDEA 再次重新生成 maven 项目的相关配置即可

当然,这里要注意启动参数要正确,标准 maven 项目的启动参数的第一个值很重要:
JFinal.start("src/main/webapp", 80, "/", 5);

如果是 IDEA 下启动,使用:
JFinal.start("src/main/webapp", 80, "/");

2018-05-26 22:57

如果你只需要对 action 请求设置这几个 head 值,可以用一个全局拦截器,用类似下面的代码添加:
inv.getController().getResponse().setHeader("Content-Security-Policy", 配置的值);

如果你希望对所有资源,包括对静态 js 以及图片资源来设置的话,用一个 Handler 解决一下:
response.setHeader("Content-Security-Policy", 配置的值);

如果你的生产环境用了 nginx 反向代理了静态资源,并且希望对这些资源进行配置的话,需要类似这样的 nginx 配置:
add_header Content-Security-Policy "default-src 'self';";

当然, nginx 上的配置已经与 jfinal 完全无关了。这个问题在本质上也是与 web 框架无关的

2018-05-26 18:31

@snakelenas 这个当然是有需求的,期待写好这部分再分享出来

2018-05-26 15:15

无法得到字段名,也无法加载条件是什么意思?

为啥不用 model.find(sqlPara) 方法

2018-05-26 11:40

进步相当快,感谢你的分享

还有一个很重要的点,将 controller 传入 service 层,破坏了封装性, controller 调用方需要知道 service 层中传了什么值给 controller