00:00
好,上一节课呢,我完成了员工添加页面的跳转,接下来呢,我们就来做员工添加功能,首先呢,将员工信息输入在这,然后呢,我们来点击添加,会来发送添加请求,那我们就来到添加页面,把我们这个form表单来,先来修改一下它的action地址,Form action大括号们发送当前项目下的P请求,我们rest分割规定,诶,我们必须是一个post方式,这样呢就是员工添加,那好,我就来到employee controlrler里边,我们来正来编写员工添加功能public,好,我们就叫and眼皮。And EMT添加员工,添加员工呢,首先处理的请求是我们来写一个叫post门品,我们要映射post请求,所以呢,我来写一个POS门品,我们来叫EP当前项目下的emp,当我们处理完成以后,我们想想啊,当我们点击添加员工添加完了以后,我们还是应该来到员工列表页面。
01:11
列表页面,而来到员工列表页面最快速的方式就是发送emps请求,来到员工列表页面,Emps查出所有员工来到列表页面获取好,我们呢就可以来直接写一个return。如果我来直接写杠EPS,它不是来到当前项目下的emps请求,因为我们说返回值会由咱们这个模板引擎进行解析,解析呢就会在内容机下给我们创,所以呢,我想要来到EMPS2种办法,一种呢,就像我们spring MC以前写的dire冒号,这叫重定向,另外一种呢,还能写冒号,这叫转发,这些呢才是转发到一个真正的请求,而不是来到模板引擎页面,好来写一下redirect。
02:03
冒号表示重定向到一个地址。而冒号。冒号它呢表示转发到一个地址,好,我们呢就来用重定向direct重定向,重定向到我们这个当前项目下的EPS,那么就会来到这个页面,当。我们这个杠代表的就是杠代表当前项目路径好,因为我们知道重定向可以重定向到任意路径好,我们写杠代表当前项目下的EPS,而为什么原理是这样呢?哎,大家可以来参照,有一个类叫。Life,哎哎呢,就是我们MVC的视图解析器,视图解析器的作用呢,就是根据视图名得到视图对象,那么在这个5u reserve里边有一个方法叫CREATE5U创建视图对象,视图名呢,就是我们方法的返回值,他拿到视图名以后呢,会来做一些判断,Start with,如果呢,以它开始,它呢,我点进来,哎,这就是readdire冒号,就是说如果以readdire冒号开始,那么呢,就会给我们创建一个redirect为由,这叫重定向视图,而重定向视图真正的作用呢就是在这儿,哎,我们来看啊,它呢有一个方法叫渲染。
03:32
重新变向如何渲染呢?哎,它在这呢,就是叫send,哎调这个方法点进来,那其实呢,跟我们以前一样,都是response send,就是我们原生的的重对项,也就是说以冒号开始,它就给你重对项,而以forward,哎,这有一个forward,以它开始点过来,它就是forward冒号,如果以它开始这一块呢,会给我们创建一个引特呢,RESOURCE5U,它呢,当然也有渲染方法,它如何定义渲染的呢?这块呢,拿到路径,拿到转发器,然后呢进行转发,这个转发器呢,就是我们原生S里边的,诶。
04:15
转发器,所以呢,这是重定向和转发,你就直接来用它的这个重定向。好,原理呢,就这么多,我们来重定向到这一块,当然我们最重要的就是页面会来发送emp破S请求,要把数据拿来添加,怎么添加呢?我们直接写一个employee,在参数位置写一个employee对象就行了。spring m VC呢,自动封装,哎,我们spring部的web底层用的是spring m VC,它来自动将请求参数和咱们这个啊,咱们这个参数对象,参数对象啊,咱们这个入参对象吧,你就叫入参对象的属性进行一一绑定。
05:00
一一定比,就说呢,唯一的要求要想让它自动封装,所以呢,我们的要求就是请求参数的名字和张宾,我们这个入参的名字,张宾啊,入参的咱们这个属性名。对象里边的属性名是一样的。这样就行了,比如说呢,我们在提交的时候,我们要提交last name email,真的以及部门以及birth等等,好,我们就来修改我们这个页面,这有一个添加页面,现在呢,每一个表单要提交的这个name属性都还没有来写上name。那么name呢,我们这个是last name last name呢,就应该跟employee的这个属性last name对应,好还有email。哎,比如说我们这个name只有跟扎B的属性名对应的时候呢,Spring m VC就给我们自动封装好了,还有呢,我们这个真的,哎,这有真的真的,那么真的没问题,如果是男提交一,如果是女提交零,好还有部门不如呢在select标签上来写要提交的name name呢,我们说提交的是部门ID,而部门ID是employee对象里边department属性里边的属性,就是说几点属性的方式,这个name呢,就直接来写贝们点ID就行了,然后呢,还有一个叫birth,是生日,那我们就来写name,等于birth。
06:34
啊,生日,然后呢们来CTRL啊,我们来重新来启动一下项目吧,那代码呢,都已经发生了变化,就是说如果说我们一切提交正确,我来在这输出一下,那么我们这个保存的员工信息,诶,我们在控制台打印一下就应该能看到,并不好意,好我们来重启一下,来看一下我们保存他员工信息。
07:00
如果这个信息打印正确,那我们直接调用啊do方法进行保存就行了。好,重新刷新一下,没有权限登录123456,登录好员工管理员工添加,我们来输一些数据,比如张三张三。按它硅谷点com来选中男部门呢,我们来选中哎DD,然后呢,Bird我们就来选一个20161210来点一个添加,哎,我们发现呢,我们这个。页面跳转是没问题的,我们来看控制台打印的这个员工信息,诶张三这些信息都没问题,那好,那我们呢,就直接来调用employee do的方法。Employee do save。点C,我们把我们提交的这个员工数据直接以保存就行了,保存员工。保存员工。
08:02
好,我们来重启一下。好,我们来重新测试一下我们这个员工保存方法。好,这个启动完成。登录要命,123456,登录好员工管理员工添加来输一些数据。好AA我来随便输一些bos呢,还是1210,我点一个添加好,我发现这个员工呢就添加上来了,哎,这日期呢都没问题,而注意这块呢,有一个坑,什么坑呢,我们在这来添加的时候,我来好这些我们来都加上,主要呢是这个生日,生日呢我填的是2016-1210。那么有些呢,我们也可以来填2016杠一二杠一二,比如说呢,我们之前的日期是用斜线的方式来分割年月日的啊,我现在呢,用短横线的方式看行不行,我点一个添加。
09:00
哎,我发现会来到一个错误页面,错误页面呢叫400半的request 400的原因就是我们添加来的数据格式不对,好,那在这儿来记录一下员工添加最容易引起的问题就是。提交的数据格式不对,特别是我们这个生日,生日呢,因为我们要提交一个日期。生日呢,我们提交的是一个日期,日期的格式呢,有很多来我们提交过这些2012,诶我们是用咱们这个短横杠的,还有呢,2017用斜线的,我们之前测试斜线是没问题的,还有呢,有些人可能提2017.12.12,我们把这个呢,我们就叫日期的格式化。就说呢,Spring n VC spring n VC将咱们这个页面提交的值,提交的值需要转换为。转换为我们指定的类型。
10:03
比如我们页面提交了一串日期,这个呢,对于页面来说,我们提交的都是字符串,然后我们要转成date类型,我们转成真正的日期,那么就牵扯到类型转换,还牵扯到格式化,特别是这个日期,所以呢,我们要按照这种格式把它转成日期对象,还是按照斜线格式,还是按照点格式,而默认默认日期。我们来看啊,默认日期是按照日期是按照。是按照咱们这个斜线方式,能不能修改这种方式呢?也能,那首先呢,看一个简单的原理,就是我们Y8MVC auto mvc的自动配置,在这个自动配置里边呢,它会配过一个东西来往上翻一,你看这配了一个form,我们叫格式化器,格式化器呢,它还专门是一个做日期格式化的,而默认呢,我们来看用的日期格式,哎,默认用的日期格式呢,就是哎我们这个斜线的方式,我们可以通过修改配置文件,哎,Spring VC data form,我们替换成短横线的方式,好,我们就来修改一下配置文件。
11:24
点有一个叫啊,Format mvc format,然后呢,我们来指定我们自己的格式,我们叫YYY-MM-DD,就是呢,我们自己来提交一个日期,如果有十分秒,那就十加上分,好,这是我们自己指定的日期格式,那为了简单起见,我就只写一个年月日。好,我来重新来启动一下项目,这样的时候呢,我们就可以提交短横线了,而我们这个日期格式化器就是根据我们这个配置来进行日期格式化的,我们默认没配它就是用斜线。
12:02
好,我们现在呢,重新来尝试一下。重新来好ME123456。登录进来,好员工,管理员工,添加来添一些数据。好,我们来随便填一些数据,主要是这个日期,我们以前呢是填斜线的,现在走填斜线就不行了,而我们现在呢,要填成什么呢?短横线,那么现在日期哎,格式调整了,短横线我点一个添加,诶现在呢,这个日期就是可以的,所以呢,这就是我们牵扯到日期格式化的问题,员工添加。
我来说两句