2017-06-12 11:16
@netwild fastjson 会自动识别你的所有 getter 方法,如果你希望大多数情况是这种行为,也可以多种 json 实现混合使用,例如上面的情况你可以使用:
renderJson(JFinalJson.getJson().toJson(model));
2017-06-12 10:36
@Rocky 必然有办法,你用一个 YourHandler 接管请求,不走 action,然后通过 request.setAttribute(...) 传递,再这样:
RenderManager.me().getEngine().getTemplate(....).render(...) 即可
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-09 15:38
@salon 建议将 freemarker 切换到 jfinal template engine,非常顺滑
2017-06-09 15:02
@salon 调试跟踪一下,是哪一行代码出现的类型转换异常?