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 输出就是返回值

2018-06-14 18:02

站在 jfinal 的角度,不管你用什么办法,只要让 parameter 这一栏的数据正确即可,其它的问题 jfinal 无法干预到

2018-06-14 18:01

@373118970 发现你在问前端的事, jfinal 是后端框架,只管到 parameter 这一栏,前端我稍微说一下:
1:正规的表单提交
2:ajax 发请求时的 data 这一栏:
data: {sortField=aaa, sortOrder=bbb}

注意第二条中的 ajax,看上去是 json 数据,但本质上仍然是表单提交类型的 key value 数据,所以后台的 parameter 这一栏仍然是 key value

2018-06-14 17:57

@373118970 确保控制台输出的 jfinal action report 中的 parameter 这一栏的内容为如下两种格式即可:
Parameter : sortField=aaa sortOrder=bbb
Parameter : modelName.sortField=aaa modelName.sortOrder=bbb

前者的在使用时,第二个参数传 "":
getModel(Xxx.class, "",true);

后者在使用时,第二个参数传具体的前缀:
getModel(Xxx.class, "modelName",true);

这些在文档中都有实例,请不要再问这种基础性问题

2018-06-14 17:29

@弩张 项目启动的时候就有错了,造成后面的查询时候出错

所以,关键你得搞定启动时候的错误,但是你启动时候的错误异常,根本没有提供 cause 部分,可以预想你根本没去分析 cause 部分

解决问题,关键就在于分析 cause 部分,否则就只能是一直瞎猜

2018-06-14 17:26

其实关键还在于你的 parameter 这一栏到底输出了什么,一定要根据输出,合理选择相应的方法

2018-06-14 17:26

@373118970 如果控制台输出的 jfinal action report 中的 parameter 这一栏是下面的:
data = {"id":"23","title":"sads","content":"sadas"}

那么该这样获取:
String jsonStr = getPara("data");

然后再转换:
Tblog blog = FastJson.getJson().parse(jsonStr, Tblog.class);

注意,这里要引入 fastjson 的依赖

2018-06-14 15:57

这个不是错误,不需要解决,如果你一定要解决,添加上 sl4fj 的相关 jar 包即可

添加这些 jar 是用不到的,唯一的好处是不输出这几条日志

2018-06-14 15:55

可能是 SysUser 没做映射,或者是 linux 上的数据表有大小写限制,造成映射错误

2018-06-14 15:53

@373118970 getModel 与 getBean , 第二个参数传入空字符串,是可以支持不需要 model 前缀的:
getModel(Xxx.cllass, "", true);

如果你的 model 用 jfinal 生成器生成了 setter 方法,可以使用 getBean:
getBean(Xxx.cllass, "", true);

注意看文档

2018-06-14 14:08

@704535983 仔细看异常, 难道是你的项目还有其他jar 包对老版本有依赖? 注意打开 pom.xml 的那个依赖视图去分析

还可以打成 war 包,看看是不是打出来两个 jfinal 的 jar 回复删除