2017-05-22 17:24

记得搞定以后回来回复一下原因,可以让其他小伙伴们注意

2017-05-22 17:23

两个方向:
1:排查客户端是否发起了两次请求,排查的方法是打开浏览器按一下 F12 键,观测浏览器发出的请求

2:排查服客务端是否发起了两次请求,排查的方法是在该 action 中设置一个断点,当程序停在断点之处时,查看调用栈,能看到是谁发起的这次请求

历史上有几个小伙伴们也碰到过这个问题,全部都是自己不小心造成的,与 jfinal 毫无关系

2017-05-22 15:33

@vae 有主键就不会报这个错误,建议升级到 jfinal 3.1,生成器出错以后提示信息更加友好,容易排查问题

2017-05-22 15:31

简明扼要,没有一句多余,感谢你的分享

实践证明,从 1.9 升到 3.1 也是比较方便的

2017-05-22 15:17

已更正,感谢反馈

2017-05-22 15:10

jfinal 是 MVC + ORM 框架,不一定要有一个整合的动作,直接在 jfinal 中使用 activiti 就好

2017-05-22 15:09

@bu0.0gu 搜索一下 qq 群,用上jfinal 关键字,进入官方群即可

2017-05-22 15:07

在 struts2 项目中直接添加 JFinalFilter 接管一部分你想被接管的请求就好,相当于配置好 web.xml 以后,就完成了集成

2017-05-21 18:53

先添加一个全局拦截器:
me.add(new SessionInViewInterceptor());

然后在模板中这样用:#(session.myModel.attrName)

2017-05-21 16:34

需求要再具体一点。 我是否可以认为是管理员在修改某个 model 值的时候,只允许修改一部分?

2017-05-21 16:31

@JFinal 你可以在配置文件中引入 baseUploadPath 与 baseDownloadPath,在开发时,将这两个配置指向项目根下面的某处,而在生产环境下改下配置,不要指向项目的根下面

2017-05-21 16:29

补充一下,如果 baseXxxPath 不设置的话,上传基础路径为项目根下面的 upload 之下,下载则在项目根的 download 之下

2017-05-21 16:28

@netwild 你可以将 baseUploadPath 与 baseDownloadPath 设置为相同的目录,然后上传完成后,直接用 renderFiel(...) 就可以下载了

baseUploadPath 是 getFile(...)文件上传保存文件的基础路径,而 baseDownloadPath 是 renderFile(...) 文件下载时文件所在的基础路径

getFile(...) 与 renderFile(...) 这两个方法在调用的时候,还可以带上一个路径值,这个路径值是相对于 baseXxxxPath 的路径

总之,baseXxxPath 就是一个基础路径,上传与下载都是在这个基础路径之下去玩

2017-05-21 10:55

这个需求的支持不需要 jetty 来参与,为项目配置上合适的 baseUploadPath即可:
me.setBaseUploadPath("/var/upload")

如上所示,可以将上传路径配置在项目以外的地方,这样可以随意去更新 war 包,而不影响

2017-05-20 15:21

俱乐部的 jfinal club 就是要向这个方向去发展的,正在进行中