2017-03-07 22:42

在 configPlugin 中对 ActiveRecordPlugin 进行一下配置即可打完收枪:
arp.setContainerFactory(new OrderedFieldContainerFactory());

2017-03-07 22:41

@jcbms2017 jfinal 官网,以极其少量的代码就实现了 @ 功能,大致是通过正则去匹配提交内容中的 @xxx 字符串,然后去数据库查找被 at 的 account,再将其转换成 url 的形式

考虑加入俱乐部:http://jfinal.com/club 可获得本站所有源代码

2017-03-07 22:38

这个是数据重复提交的问题,使用任何 web 框架都会面临此问题,jfinal 为此提供的支持是 Controller 中的 createToken(...) 与 validateToken(...)。

简单来说是在前一个 action 中创建 token,并 render 到表单页面,在此表单页面将 token 赋值给一个 hidden 的 input,最后在提交的 action 中验证 token 值

jfinal.com 并没有使用上面的解决方案,而是如下方式:
1:提交全部采用 ajax 方式
2:在发送 ajax 前用一个 isLoading 变量,并赋值为 true,然后再发送 ajax 请求
3:当用户在 ajax 请求返回之前,点击提交按钮时,由于 isLoadin 为 true 值,所以不发起请求,也就不会重复提交
4:当用户按 F5 时,显然无法发起提交,因为请求是 ajax 触发的,不是一个表单提交触发的

加入俱乐部 http://jfinal.com/club,可以获取本站 jfinal.com 的所有源代码,各种实用的功能全有

2017-03-07 16:57

jfinal 的 aftetJFinalStart() 方法是在框架之中特别预的一个回调方法,实现方式就是在 JFinalConfig 中添加该方法,让子类覆盖该方法,框架在回调该方法的时候,利用面象对象的多态实现

spring 或许也有这样的回调,得看他的文档

2017-03-07 16:35

存储过程用一下 Db.execute(ICallback) 这个方法,在其中用一下:
connection.prepareCall(sql).execute();
就可以调用存储过程了,并且还可以自由控制返回值

2017-03-07 16:28

@lantsui 在群里叫天蓬元帅,在社区叫 @天蓬小猪

2017-03-07 16:27

@fengting jfinal.com 首页右侧就有 changelog.txt 下载啊

2017-03-07 16:15

@lantsui 在那个 2000 人的大群里面找,或者加入俱乐部,在俱乐部专享群里面找他一下

2017-03-07 16:10

可以去群里面找一下 @天蓬小猪 他对你碰到的这个问题做了升级

2017-03-07 16:09

jfinal 3.0 对 Routes 实现做了改进,所以如果对 Routes 有依赖的项目要稍微改点代码,新版本的 Routes 中有 getRoutesList() 以及 getRouteItem() 这类方法可以代替掉原来的方法调用

2017-03-07 16:08

确实是有少数图片不支持,解决办法是将图片令存为 png 一下就好,或者换一张图片,目前仍然不知道这个异常的原因

2017-03-07 15:36

@fengting jfinal 3.0 手册第一章啊,首页右侧有下载的啊

2017-03-07 15:29

@fengting jfinal 手册中,只要是红色字体部分,就非常重要,否则容易出问题,一旦知道了,后面就没阻力了,都是些简单规则

2017-03-07 14:29

你的代码没有业务层,这是极大的错误,添加上业务层,让业务层处理业务,并返回合理的返回值

俱乐部专享福利项目 jfinal-club 是这样做的:
1:建立业务层
2:让业务层返回一个 Ret 对象,用于承载业务处理的一切结果
3:控制层理论上仅需一行代码: renderJson(service.justDoit(getPara(...), ...));

业务层大致这样:
public Ret login(String userName, String password) {
....
if (...) {
return Ret.fail("msg", "用户名或密码错误");
} else {
return Ret.ok("loginUser", user);
}
}

控制层大致这样:
Ret ret = loginService.login(getPara("userName"), getPara("password"));
renderJson(ret);

考虑一下加入俱乐部,有大量这类代码,直接可用:http://jfinal.com/club