2018-03-26 14:10

@溪碧旗 先配置好日志,然后有异常会自然输出到控制台

下载首页的 jfinal demo,直接用上里头的 log4j 配置与 jar 包

2018-03-26 14:09

是开发阶段还是部署阶段?

2018-03-26 13:14

很久不用 freemarker,况且没有贴出异常信息,很难判断原因

建议你试一下 jfinal 自带的 enjoy 模板引擎,随意定义 function , 比宏经方便简单多了

要知道 function 函数是所有开发语言都有的一个极其简洁自然的特性

2018-03-26 12:36

@zhuweiliang 建议生产环境用 tomcat,开发环境用 jfinal 整合的 jetty-server

2018-03-26 11:48

java.lang.NoClassDefFoundError 这个异常要具体到是哪一个类没找到定义

很可能是你的 resin 缺少对 jsp 解析的 jar 包

2018-03-25 14:44

jdbcurl 的配置中后面那个参数去掉,异常明说不支持

2018-03-24 16:05

@rirai 何必这么麻烦,一行代码搞定:
renderError(403);

2018-03-24 14:27

@JFinaler1 是不是开启事务了? InnoDB 支持事务而 MyISAM 不支持事务。

开启事务以后,如果后一条 sql 依赖于前一条 sql,那是会有影响的,因为事务提交以后第一条 sql 才真正被持久化

如果开启了事务,关闭一下再试试,建议用 InnoDB

2018-03-24 13:39

@JFinaler1 升级下数据库驱动,以及 druid 版本,看是不是这些第三方有 bug

jfinal 所有数据库操作都是将你的 sql + paras 直接扔给了 JDBC API 去处理,未做过任何干预,所以 jfinal 层面出错的可能性几乎不存在

2018-03-24 13:37

@yjjdick1990 进步神速,发个分享出来啊

2018-03-24 11:59

做一个全局拦截器来做这事很方便,在 controller 中进行的操作可以放在拦截器中来做,然后通过 inv.getController().setAttr(...) 传递过去

当然,你还可以通过在 BaseController 中弄一个属性来传递,大至如下:
BaseController c = (BaseController)inv.getController();
c.setXxx(xxx);
inv.invoke();

2018-03-23 23:49

@JFinaler1 sql 中不要拼接参数,参数改成问号占位:
String sql = "insert into xxx(a, b) values ( ?, ?)";
Db.update(sql, p1, p2);

查询的时候也类似:
Db.find("select * from xxx where a=?", a);

2018-03-23 19:30

先看下日志里面的异常,如果没有异常就配置好 log4j

异常信心是解决问题的关键,靠猜是不行的

2018-03-23 18:11

报什么异常?

别忘了最后加一句:
renderNull();