2017-03-09 17:09

参考一下微信公众平台的设计方案就挺好,大致如下:
1:客户端通过用户名与密码先向服务端获取一个标识该用户的 accessToken 值
2:accessToken 值具有一定的使用时限,例如,微信平台是 7200 秒,过期后需要再次发起请求来获取 accessToken
3:客户端与服务端所有通信处于 https 通道之下,防止被监听

客户端的具体实现参考一 jfinal weixin 中有关获取 accessToken 的实现,服务端实现跟登录功能差不多,只不过登录成功后返回的那个 accessToken 有使用时限

服务端权限管理参考一下俱乐部专享项目 jfinal-club 中的拦截器,数据响应使用 jfinal 的 renderJson 即可

2017-03-09 15:30

使用 arp.setBaseSqlTemplatePath(....) 配置好基础路径,然后再通过 arp.addSqlTemplate(...) 将所有 sql 文件添加进去

如果 sql 文件很多,可以写点代码去扫描自动添加一下

2017-03-09 15:28

jfinal 并未提供 jfinal event 时间机制的 listener,如果是第三方的项目,建议找一下作者咨询

2017-03-09 15:27

@netwild 在 configEngine(Engine engine) 这个方法中,可以这样来设置一下:
engine.setDevMode(true);

可以让 Engine 的开发模式与在项目总体的开者模式分开来配置,这样的话,你可以在 configConstant(Constants me) 中 me.setDevModel(false) 让项目工作在生产环境之下的同时,让模板引擎可以让 html 的改变及时生效而不用重启服务

当 engine 没有设置 devMode 时,configConstant 中的配置为主,否则以自己的设置为准

2017-03-09 14:49

将 context path 设置为 "" 即可,最简单的办法是使用 jfinal 整合的 jetty 来启动项目,启动方式见 jfinal 手册,在首页可下载

如果是 tomcat 部署,详见这里:https://my.oschina.net/jfinal/blog/353062

强调一点:jfinal 开发的 web 项目是普通的、标准的 java web 项目,以前你的所有部署经验依然有效,不要特殊去看待 jfinal 开发的项目,所以,部署与运行问题在本质上是与 jfinal 自身无关的

2017-03-09 14:47

@caoxusheng 不太相信前端传过来的数据是 jsonString,通常仍然是很多的 key=value 结构型数据,所以前面在说,先确定控制台的 jfinal action report 输出是啥

即便是 jsonString,在 jfinal 中也可这样来做:
String jsonString = HttpKit.readData(getRequest());
Xxx xxx = FastJson.getJson().parse(jsonString, Xxx.class);

2017-03-09 14:44

@yeyu123 将项目的 context path 弄成 "" 即可:https://my.oschina.net/jfinal/blog/353062

2017-03-09 14:43

@无涯 jfinal-club 这个项目,是用:精确到毫秒时间 + accountId 的方式来规划的文件名

2017-03-09 14:42

先看一下控制台输出的 jfinal action report 中的 Parameter 这一栏的数据是什么,然后才好进行下一步

2017-03-09 10:53

文件上传功能是利用了一个第三方的 cos 组件,重名问题也是 cos 解决的,cos 这个东东在碰到重名文件时会自动进行重命名,高并发场景下确实未对 cos 进行过测试,感谢你的反馈,已添加备忘,后续版本会改进

2017-03-08 17:40

@伊森 看下手册就可以了,XmlRender 使用的是 jfinal template engine,有一章专门讲了 template engine 的使用

2017-03-08 17:38

将 TypeConverter 以接口形式开放出来,这个已经在后续版本的开发列表之中了,一步步来,目前你可以先用 BaseController extends Controller 并覆盖 getBean 的方式解决一下

2017-03-08 16:43

用的哪个版本? 如果是 jfinal 3.0,注意输出指令为: #(obj.message)

2017-03-08 15:37

菜单是需要用 MenuApi 去设置的,注意设置一下,并且要保障设置成功