00:00
好,那下面呢,我们继续来写咱们的添加功能吧,比如说然后咱们来找到我们的首页,叫做list,对吧,然后我们在哪呢?咱们在options这,然后来加上一个超链接,然后A标签。然后TH冒号啊,然后咱们这个超链接是干什么的,大家注意叫做to ad,就是我们现在咱们要往我们当前咱们的添加页面去跳,OK吧,还叫做跳转到咱们的添加页面,那这个时候路径该怎么写啊,大家记不记得?咱们的路径很简单,我们之前咱们在control里面已经把咱们的功能列表都已经实现过了,都已经写出来了,对不对,这就是我们当前跳转到添加页面的路径,那所以说我们是不是只要在这儿啊,把咱们的这个路径给写上就行,OK吧,行,那大家想当我们跳转到添加页面的时候,我们有没有什么,有没有这个需不需要处理其他的请求,有没有处理请求的其他过程,没有,咱们只是来实现一个页面跳转,所以说我们是不是也可以把它给配置为我们当前的一个视图控制器,对不对,把它一个复制,然后这个是什么叫to,然后ADDDD,然后咱们当前的视图名称,比如说啊,咱们叫做emlob,音音下划线AD。
01:17
能看懂吧,所以说我现在我是不是就要重新创建一个新的页面对吧,咱们直接复制一下啊,这个叫做ad,然后点击OK就可以啊,然后呢,我们现在咱们看这个页面,这个叫做什么?这个叫做ADD,然后employee,然后我们呢,把这个样式呢给引入进去,然后下面呢,大家说我们是不是最好啊,然后咱们要想让它看着好看一些,我建议大家呢,然后是来写上一个这个表格,然后呢,把咱们当前的这个表单里面的表单项目给放在我们的表格里面,会看着好看一些,行,那我们在这咱们先写表单form,然后它的action,然后TH冒号,大家注意咱们的路径呢,就不用说了,还是谁,还是em,对吧,然后我们当前要实现添加功能,那所以说我们的这一个。
02:10
咱们的这个表单它的提交方式是不是应该是post OK吧,Post表示添加新增,然后put表示修改,Delete表示删除啊好,下面呢,我们要想写的好看,咱们就把这个table表格加上,大家注意,我现在呢是把我的表格给放到了form里面,那我建议大家不要把form给放在表格里面,因为咱们的表格呢,它是一组标签,咱们的table里面只能出现什么t body对吧?然后t head就是咱们的表格的头部,还有身体对吧?然后还有就是咱们的TR一行TD1列TH,对不对,只能出现这些啊,所以说我建议大家是把table放form中,然后不要把form放table中,你也不要去试,你试了之后你会发现你的功能都实现不了,知道吧,好,然后table下面是TR,然后下面咱们来写个TH,然后这个咱们叫什么?这叫做ad emlo OK,那咱们在这来合并一下列两。
03:10
点啊,然后再往下TR,然后大家看好,首先咱们TD,然后第一列咱们写个叫什么,就添加功能,咱们是不需要设置ID,那咱们就直接写个last name对不对,在这给它设置一个文本框,Input type等于text name咱们等于谁就叫做lastname啊。为啥要等于last name,大家说啊,然后大家想一下,那我们现在咱们是不是要来收集咱们的员工信息,那所以说我们是不是就需要干什么,咱们是不是就可以在咱们的控制器方法中通过一个实体类对象来接收,对不对?那我们是不是就要保证咱们传输过去的请求参数的名字要跟我们当前实体类中的属性一致,是不是啊,好。然后下面咱们来复制复制复制,然后这个第二个应该是email,叫email,然后这个呢也是email,然后第三个呢,叫做gender,叫g gender,那gender的话性别,那我们最好是来给它设置一个单选框对不对,Name呢,等于geer,然后咱们给它来设置一个value对吧?然后大家注意咱们在这呢,有两个啊,一个叫ma l me,然后这个是男是一,还有一个是零,然后这个是fe female,然后这个是女,OK吧,行,然后最后一个咱们应该是一个提交按钮,在这给它合并列,然后等于二,然后这是一个submit按钮,然后咱们给它一个value,然后等于ad就可以啊。
04:42
好。行,那我们现在咱们先来看一下能不能跳过来啊。好,咱们先看一下咱们的页面能不能正常的跳转,然后下面咱们来找到咱们的来刷新一下,然后咱们在这是不是就多了一个ADDDD这个超链接,然后我们现在来点击,大家看是不是就跳过来了,对不对,好,然后呢,我们现在就可以来实现咱们的添加功能了啊,大家注意,非常的简单,找到咱们的控制层,因为DA咱们又不需要去写对不对,Request的埋屏括号,然后咱们的请求地址是这个什么em,大家注意啊,我们在这个页面中已经把什么呀,已经把我们当前的路径已经写好了啊,看到了吧,然后再往下呢,它的请求方式method等于request method.post是来实现添加的,然后public string,好,然后下面咱们叫a emlo。
05:41
好,然后那我们现在是不是就要来接收我们从浏览器传输过来的请求参数,有last name,有email,然后还有一个呢,就是咱们的这个金ER对不对,那所以大家想想,那我们在这咱们怎么写呢?那咱们可不可以一个一个获取,当然可以咱们设置一个string类型的last name,设置一个string类型的email,设置一个EG类型的这个金nder对不对?好,但是那我们说如果我们当前的数据比较多,我们是不是可以通过咱们的实体类来获取,你只要保证实体类中的属性跟我们当前,然后咱们传输过来的请求参数的名字一致,是不是就可以啊,对吧?好。
06:21
所以说我们在这直接用一个employee来获取咱们浏览器传输过来的数据就行。再说了,大家看,你看咱们的音DA,我们在实现添加跟修改功能的时候,咱们是不是都是直接操作一个员工对象的。是不是啊,对吧,所以说我们直接来获取一个实体类对象就行啊,然后直接调用employ DA,大家看啊,咱们现在是要来保存咱们的员工信息,员工对吧,然后信息调用employ DAO点叫做C方法,直接把employ拿过来。能看懂吧,因为我们这个页面中是没有ID的,那没有ID的话,大家说我们在这获取的这个ID employee对象ID是不是也是那样,对吧?然后我们的C方法会先判断它是否为难,如果为难,那我们在这是不是会给它设置一个初始化的ID,这个ID每一次咱们添加这个ID跟我们之前的map集合中的每一个ID,每一个键是不是都是不一样的,是不是?所以说咱们再把它放在map集合中,那我们就可以实现一个添加员工信息的功能啊好,但是大家看好,那我们保存成功之后,我们要干什么?
07:36
那我们保存成功之后,是不是得让用户看到我们当前添加之后的一个效果呀。是不是啊,所以说我们是不是还得重新去跳转到我们当前的什么页面叫做列表页面。对不对啊,不是列表页面,应该是列表功能,因为你跳转到列表页面,那那咱们直接在这return employee list的,那你这个页面中也没有数据啊,对不对,我们应该是来跳转到我们当前咱们的这个请求,然后重新让他干什么,让他再次来访问我们的列表信息,咱们的所有的员工信息再跳转到列表页面,咱们是不是才能看到最终的效果,对不对?所以说大家注意在这儿啊,我们需要来访问咱们的列表功能,跟列表页面不一样,列表页面就是直接跳转到这个页面,但是这个页面它没有数据,我们必须得访问我们当前实现列表功能的这个请求,让这个请求再执行一次,然后咱们才能看到添加之后的效果,OK吧,那咱们在这怎么写呢?大家说咱们用转发还是用重根箱?
08:41
啊,是不是建议大家直接用重镜像对不对,就相当于咱们的浏览器是不是重新又发送了一次请求来访问了咱们的列表功能是不是啊。如果大家用转发的话,你你会发现啊,你的地址栏里面啊,然后它显示的还是我们之前咱们添加的这个地址。
09:01
所以说我们在刷新之后,那我们当前咱们是不是执行的就会重新去访问咱们的添加功能,所以说建议大家在这使用什么叫做重定向,对吧,重定到咱们的列表功能,什么叫列表功能,看好斜线emlo,这就是列表功能这上面这就是列表功能知道吧,好,然后现在咱们是不是直接来一个return双引号怎么写啊,Ready ready direct,然后冒号斜线employ,大家注意这样写就可以啊。行。这就完事了,那有腾老师,咱们的请求方式是get对不对?那你看这种方式它不是get吗?啥叫重定向,让浏览器重新去访问我们当前重定向的的一个地址,那不就相当于在地址栏里面直接输入这个地址吗?大家说是不是?OK吧,所以说大家看好,我们现在呢,咱们只需要让它重定向到我们当前的斜线employee就可以啊好,我们现在咱们再来一个重新部署。
10:09
好,然后我们来一个刷新,刷新好大家看啊,然后这个last name,咱们就给它设置,为什么呀,XX对吧,然后这个邮箱XXQQ,然后点com,然后下面咱们这个性别,咱们来选个男啊,然后点击ADD,然后大家看1006对不对,XX,然后这是咱们的邮箱,然后这是性别来。能看懂吧,OK吧,你看我们在这,咱们再来添加,然后YY对不对,然后YY qq.com,然后咱们选择一个女,然后下面咱们再点击添加,大家看看。没问题吧,是不是好,这就是我们当前咱们的一个添加功能啊好,那添加功能讲完之后呢,大家注意这里面没有什么难度对吧,然后因为我们现在也不需要去转换咱们的请求方式,是不是啊好,那下面呢,我们就把咱们的修改功能呢,咱们也来写一下啊。
我来说两句