2018-06-15 10:19

项目名称就是 context path,你得确定你的配置是不是支持 context path:
http://www.jfinal.com/share/949

2018-06-15 10:18

文档中有实际的例子:
http://www.jfinal.com/doc/9-3

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:13

多看看文档中有关 #para 指令的用法,这个指令是不能用在 select 块中的,JDBC 不支持这样的 sql :
select a, ? , ? from ...

2018-06-14 19:12

select 块中是不允许存在问号占位符的,而你的 #para(MODIFTIED_USER_ID) #para(title) 都生成了问号占位,改成 #(MODIFTIED_USER_ID) 直接输出变量即可

2018-06-14 19:10

JFinal 06-14 19:10
你的 sql 模板中明明是有参数的,而你的 Db.paginateByFullSql(...) 为啥没有传入 Object... paras 参数呢,加个参数进去:
Db.paginateByFullSql(..., sqlPara.getPara())

2018-06-14 19:10

你的 Db.paginateByFullSql(...) 为啥传入 Object... paras 参数呢,加个参数进去:
Db.paginateByFullSql(..., sqlPara.getPara())

2018-06-14 19:08

设计这个 API 时,假定了用于分页的两条 sql , 只是 sql 部分的 select 部分有所不同,而参数部分是完全一样的

如果你的两条 sql 模板中的参数确实有所不同,有两个解决方向:
1:使用 #(...) 输出变量,这个输出不会生成问号占位符和 para,而 #para 指令会生成这两个东东

2:使用 select * ( 原 sql 在此) 加个嵌套来解决参数不同的问题

2018-06-14 19:06

这里的关键点就在于 paginateByFullSql 方法中的 Object... paras 这个参数是被前面两条 sql 参数所共享的,确保可以共享就能正常工作

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 变量的尝试即可

2018-06-14 18:31

指令的输入是参数,输出是 String 的数据,可以理解为这个 String 输出就是返回值