00:00
大家好,这节课呢,我们完成了分页的制作,看一下,那这节课呢,我们来完成一下搜索加分页,在这里边我们搜索我们想要的关键字,然后搜出用户,因为用户比较多,我们想查找某一个用户的话,如果没有搜索功能的话,比如说从几十万或者几百万的用户里边找到一个,那是相当困难的,所以呢,咱们做用户的列表,或者是产品的列表,一定要给加上搜索,或者是分类去查找,那咱们分类的工作,咱们去做一下搜索啊,咱们先优化一下这个搜索的这个呃表单。找到我们的。嗯。用户列表,找到我们的搜索表单。分类我们就不做了,所以我们把分类这块。对流搜索这块看一下,如果想做搜索的话,我们只需要将这个提交查询这个按钮一点击的时候,表单到哪去搜索,一般的我们都用去做。所以就。不用把这个改掉,然后呢。
01:01
我们提交的位置也是提交到我们的,呃,列表页面和我们,呃查询这个页面是是一个,就是用户列表页面是一个,在这里边我们去做搜索。受。下边的下边的线。吧。这样的话,我们一点这个。提交按钮。输入到关键字,咱们就叫k words,这不用改,然后交到这个位置,那我们在这个位置。这个位置,这个位置呢,我们需要。接收到这个表单才可以。呃,在这啊。接收。用户。搜索到。关键字。当然了,关键字肯定是一个字符串。
02:04
我们也叫。嗯,黑。Q吧,等于RQEST点。那我们通过用户提交也到这个位置来,那提交的参数呢是。War。记得那里边关键字是keywords,再看一下,确保没问题。OS。这样的话,我们进入这个单,进入表单搜索的时候,和我们这个查询是一样的,我们查询的时候就加上一个关键字就可以了,我们在后边再传递一个kord,把我们这个关键字传进去,然后我们在这个方法里边进行搜索。那我们需要改造一下用户service这个服务,在搜索的时候,我们需要在后边这个参数这块,我们再加上搜索的这样的一个关键字都算的。
03:01
加上一个搜索的关键字。穿的是这无所谓啊,几个面料。然后在这块查询的时候传进参数,我们只需要在SQ语句里边加上就行了,但是呢,用户不一定是每次都搜索,所以呢我们需要判断一下,如果用户没传参数,那这个参数就是空,所以我们在这块。做一个呃判断,这样吧,我们先保持对。这个先提出来。这一个判断啊,如果这个。Word。不等于空就搜索了。如果是等于空,那就是证明用户没搜索,没搜索的话,我们继续执行原来的步骤。继续执行原来的步骤。如果用户不等于空,他输入关键字搜索,那搜索的时候呢,我们需要。在这个里面多加一个,多加一个条件。
04:00
你看用户这号,我们加上一个呃,Where条件啊。搜索用户名。R。看一下这个字段。优势下线。查询从用户表里边条件是用户名,当然我们搜索的时候,你可以按完全搜索,就是用户搜那个名字啊,比如说用户名等于什么什么,但是这样呢,咱们想做模糊搜索,模糊搜索呢,咱们就用什么用like。Like,当然了,你可以在这块直接。这里边儿加上,呃,比如说。Like我们的关键字是这样的,两个百分号中间。是我们的关键的,比如说啊key可以这么做,当然这样做呢,你想象一下很容易被别人。关键词,它组合成一个词语,就是把你原来词汇语除掉,他想在这写什么词汇就就写词语句,所以非常危险,所以不建议大家这么做,那不建议大家这么做,那我们怎么做才是合理的呢?
05:10
那我们就把这块直接改成。问号就可以了,Like,如果不查询直接问号,但是我们这块要是有问号的话,那我们这块就可以需要设置这个参数,那我们就把这几份放到这里边来,我们在这边多设置一个参数。我们我们在这个位置里边多设置一个,呃,因为它现在有三个标符,所以我们需要在这块把这个。啊,第一个位。我们把它写上,因为是字符串的,所以我们在。这里边儿第一个参数,那就是我们一数字一这块我们写的方式就是。百分号。加上。加上。摆放。以这样的方式去查找,这样的话自助注入,因为它是预处理语句无限执行,传完值之后才会执行,所以呢非常的安全,那这块我们就需要改成二,这块我们需要改成三。
06:04
才可以。那同样如果是等于孔,那也就是用户没有传,没有传的话,我们还是执行原来的。还是一和二就OK了,这样的话我们就可以搜索的时候多了一个号,把关键词传进来,然后按搜索的记录去查找就行了。那我们先暂时看一下,可不可以我们再一点点优化啊。专心下有个。异常,我们看一下在哪。这不是一场,这是一个错误,我们应该是代码写错了,你找一下啊。嗯,这有个差评说好,没有这关键字。Right。这了。我们再看一下。He works。没有这S。变异完成了,那我们也不用重启服务器,那我们继续刷新。
07:01
看一下。现在没有。我们在这一比如。查询。看一下搜出来都是艾米,但是呢,我们一共42条记还是42条,记录还是九页,这个分页还不对,所以我们需要查询总数这块。按关键字查询这块我们也需要重新去啊,把另外一个数据库的操作方法给改掉。我们同样。找到我们的,呃,用户数据库操作这块。看看这块查询数字查询这块一样,我们需要在这块也传入一个关键字。K。那同样。我们要在。哦。大胸这块。总数的话,我们一样需要把这个。关键是。哦。
08:03
应该是我们声明的话,声明这话。同样在这个方法里边,我们一样做两条四个。我们。下边的操作方法是一样的。如果关键字。是空,也就是我们搜索的关键字,如果是空的话,我们怎么办?否则我们怎么办?如果不为空的话。我们。肯定这样。如果为。如果不等于空证明,我们去搜索证明,搜索的时候我们重新做一个圈。一样,后边我们加上呃外二条件,搜索名外二条件,然后user。Name。Like问号,同样,我们需要。执行。
09:01
之前。准备准备,我们需要同样的方式。这。这样的话,我们就将这个代码重新改写了一下,我们再来看一下搜索一下总数。蚊子爱你。还有几条?那一共有八头。两页中的一页,那这样我们在这个分页这块要加这个,但是下一页的时候你看。下一页的时候,或者上页下页。又回到了原来的没有变成我们搜索的那个界面,又回到了以前的那个界面,所以我们需要在分页这块,把这些分页的数据加上,那我们搜索完之后看一下,比如说搜索艾德。
10:00
那行。我们关键这块把这个加上。对吧,来看一下我们如何让这块显示用户搜索关键字停留在停留在用户这块。那是不是我们应该呃,在流这块把用户的关键给设置上才可以啊。因为在查询的时候,我查。看一下已经在这块有关键等于爱你对吧,那我们只需要在用户的。呃,这个查询列表这块。我们不用把它过来。用的差列表V6值这块,我们直接通过参数里边把这个值获取到就行了,那我们直接用EL表达式。也要表达式,通过参数直接在DSJSP页面获取参数的话,呃,你需要使用PM通过这个里边获取到keyords。
11:03
我们是keyword还是keywords?Keyword查询提交就是这个关键词看一下,这样的话,我们在搜索的时候,比如说搜索。爱你。是不是就保留在这了,对吧,那现在我们需要做下一页下一页下一页下一页的时候,我们也需要把这个参数过去。也是每一页他都去搜索才可以,如果我想把这个参数传过去,那我就需要在下一页下一页链接这块把我们的。这个参数传过来,但是用户没搜索的时候,如果我直接在这块写参数看啊。过来。如果我直接在后边怎么加上。安排。你比如说呃,搜索的关键字key。什么什么?那也就变成了,我如果不搜索也有这个参数,对吧,所以我们变异方去做一个呃,一个判断去解决这个事情,怎么做判断呢。
12:04
看一下。把这个去掉。来一个小判断就可以。嗯,看一下在我们的,呃。这是。低了。那我们这个页面你看我判断一下。如果。Kate ward。Keyword不等于空,也就是用户是在搜索,如果不等于空的话,那我们就做一个呃关键字,做一个字符串关键字吧。嗯。直接直接写吧。啊。传过去一个字符串就是CH搜索的。参数。
13:00
搜索的参数是什么呢?那我们这块加上一个。安福。啊。K。嗯,Keyword等于等于什么呢?加上我们的关键。W。那你看一下,如果它不等于我们再发一个变量过去。那现在我只需要在我们的呃,用户列表这个界面里边,把这个用EL表达式加上就可以了。也就是在我们后边这个位置。加上。搜索关键字就行了,然后每一个后边我们都加上这个搜索的关键字。这样的话,我们在。搜索一下。爱的查询。下一页看下边的这个位置下搜索。
14:02
5678条记录,上一页回来了,下一页搜索关键字还在这个位置,这就是搜索,把这个分页也带上,不然的话你下一页的时候就没有了,如果我不查的话。这就是我们,呃,搜索加分页的一个实验,那下节课呢,我们再继续做其他的,比如说。呃,修改这样的一些操作啊。
我来说两句