2018-06-15 10:17
@钮飞虎 参数值及个数不同当然就不能用这个方法了,但是你可以通过一点改变让参数完全相同,例如用嵌套 sql , 以及针对某些不同参数使用 #(value) 来输出具体值,而不是 #para(...) 来生成问号占位
2018-06-15 10:15
jfinal demo 中默认使用的 context path 为 "", 所以 css、js、图片等资源的路径中的 context path 为 ""
而你使用的 context path 值为 "jfinal_demo",必然就找不到 css、js 等资源文件了
在 tomcat 下,让 context path 为 "" 的方法见这里:
https://my.oschina.net/jfinal/blog/353062
当然,你也可以将 context path 设置为任何值,但你就要改下 html 页面,在页面的资源路径前这样来加:
src="#(CTX)/原来的路径在此"
注意这个 CTX 对象不是凭空来的,需要在 configEngine(Engine me) 方法中配置一下:
me.addSharedObject("CTX", JFinal.me().getContextPath());
2018-06-14 23:48
@sxf2018 有 where 也不行,因为这个始终属于 select 块,而这个块在生成 totalRow 的 sql 时会被 replace 掉
2018-06-14 19:03
使用 paginateByFullSql 的前提条件是,两条 sql 中使用的问号占位符的个数可以共享,相当于下面两个方法,不同的 sql 区享了同样的 paras:
String sqlAAA = "select * from tableAAA where aaa=? and bbb=?";
String sqlBBB = "select * from tableBBB" where ddd=? and eee=?";
Object paras = {123, 456};
Db.find(sqlAAA, paras);
Db.find(sqlBBB, paras);
观察上面两个 Db.find 所使用的参数,然后回到你的 paginateByFullSql 方法,里面有两条 sql:
String totalRowSql 以及 String findSql,然后你代码中调用了两次 getSqlPara 获取到了两个 SqlPara 对象,对比一下这两个 SqlPara.getPara() 出来的数据个数与数据值是不是完全一样的,如果是的话,则可以使用,否则就不能使用
2018-06-14 18:53
@373118970 {data: {sortField=aaa, sortOrder=bbb}} 这个是错误的,当然获取不到,以下 parameter 才是对的:
Parameter: sortField=aaa, sortOrder=bbb
2018-06-14 18:52
@704535983 getFile("name", path) 中的 path 参数规则有点变化:
1:jfinal 1.8 老版本的规则: path 以 "/" 打头时采用绝对路径,否则是相对于 baseUploadPath 的一个相对路径
2:jfinal 新版本的规则改成了全都是相对于 baseUploadPath 的相对路径
试一下如下的两个方法解决:
1:配置 baseUploadPath: me.setBaseUploadPath(...)
注意,这里可以配置绝对路径,baseUploadPath 配置为绝对路径的例子为:
me.setBaseUploadPath("D:/upload");
me.setBaseUploadPath("/var/upload");
baseUploadPath 配置为相对路径的例子为:
me.setBaseUploadPath("myupload")
这里的相对路径是指相对于项目的 webapp 来说的
2:调囊 getFile("name", path) 时的 path 参数值。 注意这里的调整都是在 baseUploadPath 配置的基础上调整的
多做些 baseUploadPath 配置以及 getFile 时的 path 变量的尝试即可