00:00
下边我们来学习model drive跟able拦截器,实际上呢,我们是要来完成r two的一个c rud操作,我们有有一个数据代码,大家先看一下我们这个需求,这个需求呢是这样的哈,我才上来的时候的话呢,是一个EP list,然后我将显示所有的。员工信息员工有三个字段哈,ID name last name。好,后边跟着测试的话呢,我们可能还会来添加一个email,然后呢,呃,全显示上了,全显示好之后的话呢,它有一个I跟delete,我要是点一个删除的话,它的确是会删除一条记录。
01:01
再过来。好了,那我也可以在爱的new employee里边填这个first name跟lastname,我填好之后的话,它就会在当前页面里边增加一条新的记录,就加上了,哈,啊,应该是在这是吧,这是新加的。这是新加的,那我还可以来进行编辑去修改,我要是点编辑的话,我们是不是得先上这个编辑页面上过来呀,然后的话进行修改之后的话呢,这个页面上可以呈现出修改的效果,哎,这个就是我们整个的一个c rud,就是蒸删改查拿我们的刷two来完成,我们在写这个CR子过程中,我们会发现一些问题,那这些问题呢,我们就将用我们的这个。应该不是啊,那用我们的model drive跟pre拦截器完成,那在讲这个拦截器之前的话呢,我们还需要来说一下什么呀,还需要来说一下我们的这个strong two的一个运行流程,但是这个流程的话呢,还不是完整的,在我们讲完strong two之前,我们会搞一个完整的two的一个运行流程。
02:15
是什么样的?嗯,现在的话呢,还没有完全学完哈,OK,我们先来做吧,那新建一个兔的工程,Stress部杠五走。这个的话呢,我就直接构建了哈,我从这个里边找到Le粘贴。然后来配置stra to the filter。
03:11
Iive effort。然后呢,找到的配置文件。行吧。O了,这个环境呢,写好了,下面的话呢,我们来实现一开始我们能够比较好实现的几个功能,比方说EP list,比方说这个删除这个我们现在可以非常流畅的给它写出来。过来看看。第一个,我需要新建一个index.jsp。
04:07
然后加上一个超链接,说EP list.do。List all employees好了,回头的话呢,还可能会有e delete。EP emp update EP save,所以说的话呢,我们可以使用那个通配符,先写一个哈,写个action叫EP横线星对吧,充配吧,下一个写一个class。新建com点艾硅谷点巴点APP好了,进店一个action,这个action的名呢,就叫employee action。
05:07
好,先来写一个方法,叫public list,获取全部的return返回,这个结果的话呢,也叫list。OK,把这个来配一下。CTRLC过来。我教的方法是method,一半OK,我去的结果叫result him,也是一结果e p1e。背完了,背完之后的话呢,先瞧吧,这是一个list,那前提是我们是不是得准备一组employee啊,那于是我需要来写一个employee。
06:15
啊,是体类,好了,里边来写一些属性,Private ID first name private last name OK,再加一个属性private email。好了,对应的代赛的方法,写一个代餐的构造器,写一个无参的构造器。好,这是我们这个实体类,这个写完之后的话呢,我当然需要写一个DAO。
07:04
这个DAO啊,是我们在内存里面这个employee进行登删改查操作的,我们需要这样的一个类,那这个时候的话呢,我们有相对我们需要相对呃能够进行修改的添加删除的这样一组数据,所以说我们把这组数据放在一个static里边,Private static map。Bo DPS等于new哈西,然后呢,我在这个静态代码块里面对它进行图纸化。兔子。对,这个键呢是ID。Employee来。001A小写的。
08:04
AA硅谷点。com。哦。2345来。2345。刚洗完。这个写完之后的话呢,然后我们有这个查询的方法,看一个public list,需要得到所有的employee get employee怎么获取啊,获取全部的PPS点怎么获取啊,知道他六。
09:09
奥吉杠。包装一下吧,放个啥呀,PPS点这是不是可以呀,获取全部的,就这么获取,那一会还有一个删除的嘞。Public delete,看出那传个什么呀,重ID吧,In的ED怎么删呢?TPS.ts点吧就删了吧。然后有个添加了。Public save好了,加的话呢,我应该是传一个什么进来啊,传一个音employ进来吧,但是啊传这个EP没有ID吧,我这个ID的话呢,我需要随机的给它这一个值,那否则我这个值它不行,那我怎么制呢?我们就利用这个当前的系统时间放time等于system。
10:21
Currents OK p点。Employee ID直接传这个time,当然我需要进行一个强转。好,写完,然后保存到EPS里边,Put emp.get ID或者是EP吧,都不进来了,好了,还有我在修改的时候呢,我需要单独获取一个employee吧,At e PI return employees.get PID是这么写吧,再来我还会有一个修改操作。
11:20
E怎么改呀,我改的话我是带ID的吧,我把以前那个替掉就可以了吧,eps.put ep.get employeed,笔是完了,哎,这就是我们整个模拟的这个DA写完,然后回到我们这个X里边来,好吧,来private employ employ哈,DADA等于6DA。第一个,我们当然需要那个request request where加一个进来,Private map object。
12:16
Request。x.request等于二零写完,然后呢,Request。E po.get employees是不是就O了?这个写完之后的话呢,我们需要去一个页面,这个页面叫EP list JSP吧过来。来BMP list点。好了。导入标签库,这个里边的话呢,的确是要用到。
13:06
这个通用标签,因为你要显示啊,显示为一个table吧。第亥猴吗?第二,TD。这里边儿的话呢,我们需要放的是。ID。What's name?Afternoon email还有一个ID,还有一个挺好,底下的话呢,是一个提Bo。
14:05
Ebo。然后是。照片儿不一定吧。都不一定啊,取决于什么呀?取决于数据库里边有多少条记录吧?于是找找value request.employees。后来看没问题好了,然后也不用写were,就简单嘛。TR。然后呢,ED。后来这不直接就可以写了呀,Employee ID。下一个forsca name。下一个afterme,下一个。
15:01
Email,好了,这是两个超链接。A等于。叫ID。哎,C找个啥好。C拿过来周V好了啊,这个表格的大大方方的。They're paintding。十。Self facing01ok,第一个功能,这样就可以实现了,找一个。这个呀,我们前面搞的差不多,所以说写的快一点哈,你不用管他没事。
16:10
走哎哟什么问题啊,貌似启动的时候啊还点度呢是吧,哦,点度的写习惯了,保存默认的是不是还有一个那个带那个扩展名的再走。可以吧,显示好了,显示这来爽一个来爽一个删除。爽一个删除,爽一个删除的话呢,先写着哈,看点一个方法,Public delete来我先return一个地址,这个呀,比前面那个多少要复杂一点。
17:06
大家想哈,我要是写一个删除的话,我得有个ID吧,那个ID在哪里边定义啊,是不这里边定义啊,因为抓two会把那个请求参数给占顶对象对应的属性吧,对吧?哎,所以说我们应该在这里边定义那样的一个。字段,Private。类型的employee ID提供一个set ID方法。起来。不写get啊好了,执行删除dao.delete删除了,然后的话呢,我返回了一个比例。
18:00
啊,我返回这个的话呢,还有一点讲究怎么了,你要是返回的话,你是不是到这个页面能够显示出这个效果来呀,返回吧,如果返回的话呢,我们需要用一个什么样的一个显应方式啊,叫重定向到这个。Actiondirect action才可以,当然你也可以那个trainin,用不着那个train,就是说我们用不着在下一个action里边还保留着当前的这个状态,我一删完之后的话,我再一个显示就可以了吧,所以说这块需要注意的拿过来来写写啊,第一个哎,需要。在当前。以中定义employee ID属性。
19:04
干什么用呢?哎,以接收页面请求吧。请求参数。就这个节奏吧,是吧,定义定义好了,然后完了你给我拿过来,我好用啊,好了你删了,这个需要注意,哎,说返回结果的类型应该应为,为什么呢?Redirect。Action。当然也可以是。可以是什么呀,可以是。Ten,那我们说一下哈,实际上ten是没有必要的,因为我们不用到下一个X里边继续保留当前那个状态,因为不需要在下一个。
20:16
Action中保留当前action的状态,实际上的话呢,还有一个副作用,还有还有还有一个什么呀,如果你用的要的确是近in的话,那我那个地址栏显示的是不是始终是比例的呀,你要是再点一次刷新的话,它是不是还要执行那个杀虫操作呀,没那必要吧啊还有说若。只用。那么则。到达目标页面后。
21:02
地址栏。显示的依然是删除的那个链那个链接吧,好容易这个这个这个这个刷新时刷新时。会有重复比较,所以说的话呢,我们选,因为这个action。好啦,保存写吧。这个呀,叫精确匹配,没办法。Action。Action是谁呀?那样说呀,是P点是EP disc吧。
22:04
我是不是要到这个e list呀,是吧。你发的不就是这个e list吗?那个action name是不是默认的那个参数值,我不底下我就不写了,因为那个那个name space跟当年是不是一样啊,OK,走一个。刷新没问题,好了删一个。坏了,链接写链哦,超链接还没写呢,对,嗯,这怎么写啊,写成delete问号。Employee ID等于。福employee ID是这个效果吧,回来点占个四是不是删了呀,这样就可以了,但我们这个有个什么好处啊,我服务器启动是不是又回来了呀,是吧,没着正删吧是吧,但是这个演示的话,对我们来说已经已已经够用了,看我删我删。
23:18
我一重启是不是又回来了呀,这个其实是我们希望的一个效果,什么效果呢?我可以不断的犯错,但是只要一刷新的话又回来了,是吧?但可惜人生不是这样。OK,我们做了两个,一个是呃,查询全部的员工信息,一个是删除,起码这两个到目前的话呢,这个代码还挺让人满意的啊,对ID为什么没有顺序啊。是不是哈希map啊,那怎么样让他有顺序,怎么样让能有顺序啊,改一下吧,改成think的阿西map,这就可以了吗?
24:11
保存。嗯。有顺序了吧,嗯,好了,我们接着刚才那个话题说哈,现在的话呢,我们做了一个查询,一个list,做了一个删除,目前这个代码挺让我们满意的,大家可以看,一会儿的话呢,发给大家,没有什么冗余的,好了,一会的话我们要做一个添加,照理说添加不是什么难的事,但是做添加的时候你会发现比较烦恼的事情可能会发生啊,你先把把这个看一下,然后呢,你也可以自己来琢磨一下那个添加怎么写,然后你你看一看它是不是会有问题,那个添加将导致着我们要讲一个新的。拦截器叫model drive OK,下课休息一会儿。
我来说两句