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 就是要向这个方向去发展的,正在进行中

2017-05-20 15:20

可以额外定义一个 annotation,然后在 AuthInterceptor 中读取出来,例如:
@Before(AuthInterceptor.class)
@Para(123)
public void index()


然后在 AuthInterceptor 中通过 inv.getMethod().getAnnotation().value() 获取到该值

通过常情况下并不需要上面的方法来传递,例如,通过 inv.getActionKey() 来获取当前 action 对应的值,这个值可以事先用 Map 映射好

还可以通过 inv.getController().getPara(...) 得到参数中的值来知道参数是什么。

如果参数是全局的,或者是 Routes 级的,还可以在配置拦截器的时候通过构造方法传进去:addInterceptor(new AuthInterceptor(123));

还有一种方式是,通过创建继承类 class MyAuthInterceptor extends AuthInterceptor,在这两个类的构造方法中指定不同的参数值

2017-05-20 15:15

@辉落无言 jfinal 的 controller 才能接收到请求,service 需要被 controller 调用

2017-05-20 15:13

@bu0.0gu 首先要确保 jfinal 版本为 3.1 或者 3.0,然后还要确保 ViewType 是否为 JFINAL_TEMPLAE

2017-05-19 18:24

@辉落无言 你要是早点单步调试的话,早就解决了,出现问题一定要单步进行调试

2017-05-19 18:22

考虑如下办法:
1:用拦截器,检查请求中的 Referer 是否是本站域名,避免从其它地方跳转过来的恶意请求
2:对于敏感性的业务请求,采用隐藏域传递 token,避免恶意请求伪造请求。在表单提交前必须要先获取到一个 token,并且 token 使用一次立即失效
3:对于大额支付类需要高度案全的场景,甚至可以考虑密码或者验证码验证

jfinal 项目是标准的 java web 项目,所以以前你所掌握的 CSRF 防范的方法依然有用,直接用于 jfinal 项目即可。

充分利用 jfinal 的拦截器、Handler 来进行处理

2017-05-19 18:08

从 jfinal demo 入手,jfinal 手册也要看一遍,三个小时足够上手使用

如果希望更快,加入俱乐部有大量实战代码,直接可用:http://jfinal.com/club

2017-05-19 17:28

jfinal 开发的项目是普通的 java 项目,理论上来说在 jfinal 中使用第三方不一定要有一个整合的动作,直接使用就好

尤其是 jfinal 2.0 版本以后,Model 也有了 getter、setter 方法,就更加方便使用第三方了

2017-05-19 10:28

@aloneJFinal 目前还没有用过 kotlin,暂时没有计划

此外,kotlin 不是直接与 java 打通的吗? 那么在 kotlin 下直接用 jfinal 不就可以了?