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 调试跟踪一下,是哪一行代码出现的类型转换异常?
2017-06-09 14:22
@salon 怎么会出现 BigInteger ? 你的字段是啥类型,长度是多少? 一般整型使用 Long 就足够了,不要用 BigInteger
2017-06-09 14:21
@Rocky 最直接的办法是在 action 中通过 setAttr(...) 将 url 参数传过来,也可以通过 keepPara() 方法将参数传过来
还可以通过拦截器来做这个事