查询分页问题

后台代码是image.png

前台是:

image.png

这个问题与jfinal没有很大的关系,但是还是希望@JFinal有空能解答一下,困扰很久了,麻烦您了

评论区

JFinal

2018-03-21 22:45

你得让 “下一页” 这个链接请求时可以带上原来的参数才行,简单参数可以是直接在分页链接上直接问号挂参,复杂的可以用表单提交带参

怎懂落寞

2018-03-22 09:51

在#@paginate这个之前加上#set(value = "李明")
#set(append = "?applicant=" + value )这个确实可以,但是我不清楚到底传入的参数是applicant,还是department? 这个
#set(append = "?applicant=" + value )里面的applicant可以是动态的吗?

JFinal

2018-03-22 18:05

@怎懂落寞 用 enjoy 的 #if 指令 或者三元表达式等功能动态动生成条件即可

怎懂落寞

2018-03-23 08:44

@JFinal 就比如我点击了2个查询条件,该怎么用这个#if(),我昨天是这么用的,#if(applicant!="") #set(append = "?applicant=" + applicant ) #end
#if(department!="") #set(append = "?department=" + department ) #end
#if(kemu!="") #set(append = "?kemu=" + kemu ) #end
#if(payment!="")#set(append = "?payment=" + payment ) #end
#if(receipt!="") #set(append= "?receipt=" + receipt ) #end
#@paginate(blogPage.pageNumber,
blogPage.totalPage, url),但是这么写url只能带一个参数,真的不太理解,求解答

JFinal

2018-03-23 11:55

@怎懂落寞 对于翻页来说,通常就是 url 问号挂参,代码的写法多种多样,就看你对 enjoy 理解的深度,我下面给出一种写法:
#set(append = "applicant=" + applicant + "&department=" + department ....其它条件省略)
#set(append = "?" + append)
#@paginate(blogPage.pageNumber, blogPage.totalPage, url)

上面的代码也就是说,无论你变量值是否存在,我都给你拼接上,没有的话就是 null,被传到后端时过滤掉这些 null 值条件去生成 sql

当然,还有更好的办法,做个模板函数或者 shared method 来辅助,下面给出模板函数的方法:
#define buildAppend(cnd)
#set(append="");
#for(x :cond)
#if(x)
#set(append = append + x)
#end

#set(append = "?" + append);
#end

用的时候这样:
#@buildAppend([applicant, department, kemu, payment ....其它条件省略])

以上就相当于是写程序了, enjoy 的功能全在那里了,具体怎么使用就看你自己了

热门反馈

扫码入社