2017-06-12 13:37

@cccc123 本页面的发送按钮,还不够明确??

2017-06-12 13:23

在本页面的“发送”按钮,你快速点击多次,只会是第一次提交有效

2017-06-12 13:22

这个问题与 jfinal 唯一有关联的地方在下面这行代码:
Db.update(....)

而这行代码 jfinal 仅仅是转头扔给 JDBC 执行了而已,所以不可能是 jfinal 的 bug。很可能是由于 rtime 这个变量生成有问题,也可能是 updateRtime() 这个 action 被调用过多次

rtime 这个字段如果是 datetime 类型,建议直接注入 java.util.Date 类型的对象,不要注入 String 对象,使用 joda time 这样的第三方工具很方便生成相对于当前日期的时间对象

如果界面是一个按钮来触发调用 updateRtime(0 这个 action,那么连续快速点击这个按钮很可能会调用多次,防止这种情况的发生,你可以拿到本页面“发送”按钮相关的 js 代码来用一用

2017-06-12 11:16

@netwild fastjson 会自动识别你的所有 getter 方法,如果你希望大多数情况是这种行为,也可以多种 json 实现混合使用,例如上面的情况你可以使用:
renderJson(JFinalJson.getJson().toJson(model));

2017-06-12 11:12

添加全局拦截器:me.add(SessionInViewInterceptor())

2017-06-12 10:42

创建一个public class MyRenderFactory extends RenderFactory,并且覆盖掉其中的 getErrorRender(...) 方法,判断一下 errorCode 为 404 与 500 这两个值,并返回自己的 JsonRender 类就可以了

记得搞定后回来分享一下:http://jfinal.com/share

2017-06-12 10:37

转 json 的时候使用 JFinalJson 即可:
me.setJsonFactory(new MixedJsonFactory())

2017-06-12 10:36

@Rocky 必然有办法,你用一个 YourHandler 接管请求,不走 action,然后通过 request.setAttribute(...) 传递,再这样:
RenderManager.me().getEngine().getTemplate(....).render(...) 即可

2017-06-11 17:37

@leolove 记得搞定后发个分享出来啊: http://jfinal.com/share

2017-06-11 16:30

使用继承的方式扩展一下QrCodeRender 这个类,在 render() 方法里面将 Writer 参数改为一个 FileWriter 将二维码内容写入文件即可,大致代码示意如下:

public class MyQrCodeRender extends QrCodeRender {
private String saveFile;
public MyQrCodeRender(String saveFile) {
this.saveFile = saveFile;
}

public void render() {
// 这里只需要将 Writer 改为 FileWriter
Writer writer = new FileWriter(myPath + saveFile);
// 这里是原有的代码不用动
}
}

在使用的时候,可以这样:
render(new MyQrCodeRender("qr_code.png"))

关键点在于 Writer 对象指向一个文件

2017-06-11 16:24

@chenwang 你的代码中自行获取了 Connection 对象:
Connection conn = DbKit.getConfig().getConnection();

所以,需要对 conn 对象自行关闭一下,jfinal 之下调用存储过程的正确姿势是:
Db.execute(new ICallback() {
Object call(Connection conn) throws SQLException {
// 这里是你的存储过程代码,conn 用完无需关闭
}
});

使用 ICallback 调用存储过程,jfinal 会提供一个 Connection 对象给你,用完不需要关闭,由 jfinal 来关闭

2017-06-11 16:18

@没蓝开打 对的,通过 getJedisPoolConfig() 可以进行很多设置

2017-06-11 16:17

ContextHandler 对所有模板引擎都有效,jfinal template engine 之下这样来输出:
#(basepath)

2017-06-11 16:15

jfinal 提供了 DruidPlugin 与 C3p0Plugin 两个数据连接池插件,都是可以通过调用其 setter 方法配置连接数量的

2017-06-09 15:38

@salon 建议将 freemarker 切换到 jfinal template engine,非常顺滑