2018-02-24 14:06

@大爷暗夜 jfinal 在底层就是直接将你的 sql 与参数直接转调一下 JDBC 的 API,只要是 JDBC 支持一定就可以

单步调试进入底层,看参数是什么

或者打开一下 arp.setShowSql(true) 输出一下 sql

2018-02-24 14:02

app.name 是怎么配置的?

2018-02-24 13:59

当然,还有很多别的解决办法,例如,在最外层套一个 select * from (原sql) as temp

也可以试试 paginateByFullSql 来解决

如果不是 paginate 分页,则不会出现这个问题

2018-02-24 13:58

你将 #para(...) 这个指令用在了最外层的 select 子句中,那么会被 paginate 方法的计算 totalRow 的 sql 去除,所以 sql 就是错误的

最简单的办法是直接用输出指令输出这个参数值: #(_SQL_PARA_[0])

2018-02-24 13:54

下载最新版本 jfinal_demo_for_maven,这个版本与 freemarker 已然没有关系

2018-02-24 13:53

FileRenamePolicy 中有一个 public File rename(File f) 方法, 会在上传文件碰到文件已存在时被回调

使用上你自己希望的文件名,然后 return new File(你希望的文件名); 即可

2018-02-24 13:50

@大爷暗夜 in(?) 这部分注意,有多少个参数,就要有多少个问号,例如,有1 2 3 这三个参数的情况: in ( ?, ? , ?)

2018-02-24 13:22

注意看这句: Caused by: java.lang.ClassNotFoundException: com.jcbase.conf.JcConfig

class not found exception 这个不必多说了

2018-02-24 13:21

像传统项目一样,为 html 中的资源都添加上 context path 即可

具体作法是:
1:engine.addSharedObject("cxt", JFinal.me().getContextPath());
2:页面所有资源添加 cxt,例如:
《img src="#(cxt)/img/logo.jpb"》

强调一下,这个问题与 jfinal 毫无关系,标准的 Java web 项目的作法即可解决

2018-02-24 13:18

一定可以的,是别的原因引发的,仔细排查一下

2018-02-23 18:09

通过 JNDI 获取到 DataSource 直接传给 ActiveRecordPlugin 构造方法即可

2018-02-22 11:40

通过如下简单几步即可:
1:扩展一个public class DbSource implements ISource 用于从数据库读模板内容,看一下 ISource 这个接口中的两个方法中的注释,实现起来极其实容易,主要就是在 getContent() 方法中读数据库

2:扩展一个 DbSourceFactory 大致如下:
public class DbSourceFactory implements ISourceFactory {
ISource getSource(String baseTemplatePath, String fileName, String encoding) {
return new DbSource(...);
}
}

3:配置生效:
engine.setSourceFactory(new DbSourceFactory());

2018-02-15 13:59

支持 jetty 嵌入式调试开发

2018-02-15 13:59

view 模板文件按照传统做法是放在 webapp 下面,另一种比较新的做法是放在 src/main/resources 下面,放在这里的好处是便于引擎从 class path 以及 jar 包中读取模板文件内容

如果放在 src/main/resources 下面,注意这样配置 Engine:
public void configEngine(Engine engine) {
engine.setBaseViewPath(null);
engine.setSourceFactory(new ClassPathSourceFactory());
engine.addSharedTemplate(...);
...
}

2018-02-15 13:53

最简单的办法是添加一个 DruidStatViewHandler,有了这个 Handler,就不再需要在 web.xml 中折腾了

添加的时候可以为 druid 访问添加路由,例如:
me.add(new DruidStatViewHandler("/druid"));

DruidStatViewHandler 构造方还有一个重载方法,可以传入 IDruidStatViewAuth 支持权限控制