00:00
OK,来我们接着讲啊,呃,那现在的话呢,我们已经通过m Mac的这个表单标签啊,已经把我们的这个添加页面呢给它做出来了,然后呢,我们再去写这个添加页面的时候呢,其实顺带着呢,我们也需要分析了一下,呃,我们在这个添加页面中啊所要用到的一些数据,然后呢,我们已经给他什么都拿回来,然后呢做了一个啊呈现了,那么其实接下来我们就来做测试,就是当我点击这个添加,然后呢,通过我们的这样的一个请求处理方法,把这些数据给你构造好,构造好了以后呢,那么它最终呢,就会去往我们的一个影部的页面,那么也就是我们现在所能看到的这个页面,好,接下来我们就来测试一下,看看能不能,诶跟我们预想的一样,出现我们想要看到的那个页面。OK,来,我们再把这个index里面呢,给它跑上一遍。
01:03
好,来,我们先看,还是先来到我们的这个员工信息列表,那么在这个页面中呢,我们再通过点击这个添加诶新员工,那么点击这个添加新员工的话,大家一定要注意他的流程啊,他会发送一个请求,那么这个请求呢,就会来到我们的这个请求处理方法中,而这个请求处理方法呢,它就是帮我们去诶查了一部分数据,然后呢,我们又去构造了一部分数据,最终呢,把它们都放到我们的这个map中啊,也就意味着我们呢,把它放到request中,再然后的话,我们转发到了影步的页面,那么我们来到影步的页面以后呢,再把这些数据呢,给它取出来显示到这。好,那接下来我们就来试一下。嗯。OK。那我们点完以后呢,啊,他已经来到这个页面了,但是呢,出现了一个问底,你看看哈,他说啊有一个异常,然后呢,呃,在我们的这个input的GSB中啊,造成了一个异常,那我们就来分析一下这个异常啊呃,然后他大概的是讲这个第16行,然后第16行的话,也就是我们的哎,这个位置吧,对吧?啊差不多应该是这个位置啊那么在这个地方出现了一个问题了,出现了什么问题呢?啊,其实有有一个你看叫做inval类,就是非法的一个http method看到没有,对吧?啊其实这个问题的话呢,就是因为我们没有把这个写上啊,它是必须要去写的,那我们暂时的写成past,然后再来看一下这个效果好,再点一下。
02:32
OK,它还是有一个异常啊,这个异常我们还是来看,呃,还是在我们的这个隐部的GSP中有一个异常是在第17行,我们来看看,那么大概是就是这一行,他是在这一行出现了问题了,出现了什么问题了呢?我们来往下翻一下,好看到这个有一个非法的什么呀,状态异常是吧?什么状态异常呢?我们来看看,他说呃,Neither就是班ing result啊,一个绑定的结果,说我从这个requesttribute里面,我要去找一个什么呀,Command,哎,这样的一个数据,就是通过command的这个key呢,从这个request里面去找个数据,但是呢,我找不着。
03:14
能听懂什么意思吧?这个异常呢,大家一定要注意,哎,这就是我们在使用表单标签的时候会遇到的一个问题,来,我把它写到这。好,安徽表单标签遇到的问题,好遇到一个什么问题呢?我把这个问题原因呢,给大家放到这个位置。啊,我来回撤一下啊啊for啊,什么什么B啊,就是这样的一个问题,那我们来分析一下啊,它是什么意思,它就意思就是我要通过command这个key,然后呢,从你这个request里面呢去找一个数据,但是呢,我找不着never把adapt我是找不着的,好那为什么会出现这个问题呢?我需要给大家解释啊,就是我们的这个SPAVC的这个表单标签,因为我们在用的时候,我们就说过,我们希望它更加方便的帮我们去回显数据,而他这个表单标签默认情况下是必须要进行数据的回显的,什么叫做必须要进行数据的回显呢?也就意味着你只要用到了这个表单标签,那么他就一定要给你进行数据的回显。
04:22
好,那我们就来想象,你要给我回响这个数据,那么也就意味着它必须得能找到那个被回响的数据是才是可以的,对吧?哎,这个地方就是因为我们找不着这个回响的数据,所以说呢,他报了这样的一个窗。理解什么意思吧,OK,但是我们来想一下,现在我希望它回显数据吗?希望希不希望它会显数据啊,不希望,因为你就是一个添加页面,添加页面我是不希望你有任何东西的吧,对不对啊,所说呢,我们怎么去解决这个问题呢?来听我讲啊,我们先把这个问题的原因给大家去总结出来,什么原因呢?就是point mvc的。
05:06
好,他的这个表单标签默认情况下啊,就表单标签必须要进行数据的危险,那默认呢,会使用什么呀?会使用一个key啊,会使用command这个K啊这个key,然后呢,到我们的request中啊去什么呀,找这个危险的数据啊,找危险的数据啊,如果找不到,则抛出什么样的异常,OK,这就是我们问题的原因,那么我们应该怎么去解决这个问题呢?大家想想应该怎么解决啊啊,不让他会显行不行。不让他回想行不行,我都说了,你看刚才我在这段我写的写的那个默认我都给删掉了是吧,也就代表着什么呀,没办法,他是必须要进行回想的,所以说呢,我们就不可能说不让他回想,而是只能满足他的条件,让他能找到这个对象,是不是想了。
06:11
对吧,你就通过这个你去找到那个对象就行了吗?那么我们只不过是需要让你找着了那个对象呢,里面没有数据不就行了吗?这样的话你是不是回想不了了,对吧?所以说我们怎么去解决这个问题呢?那就是哎,呃。啊,让什么呀,让这个好通VC可以什么呀,通过这个command好从我们的request中找到要回想的数据就可以了,OK,那么这是我们的一个解决办法,那么大家现在来讲想一下,他要回想的这个数据到底是什么呢?想一想要到底是什么东西啊,不就是你的last name email,然后真的然后呢,部门的这个ID吗?是吧,因为你这个每一个表单项里面都是我们的,诶相当于是我们这个引employee的一个属性嘛,所以说他要回响的数据其实就是引里面的每个属性,而这些数据应该都要来自于我们的一个影employee对象吧。
07:15
能明白什么意思吗?所以说啊,你让他去找到这个要回险的数据,你还不能说随随便便给他一个对象。你让他找着了那个对象呢,必须得包含这个地方,我们所有写的诶这些名字所对应的那个属性才是可以的,如果说找不着,那么他照样才会有这个问题,那么这个位置我们怎么去解决呢?我们就必须得让他能通过command呢,去找到一个employee对象,因为这个employee对象里面就包含了这些属性了吧,能明白什么意思吧,然后呢,我只希望,哎,我只希望什么呀,让你找着了这个引号的对象,它里面的属性都是空是不就行了。能明白什么意思了吗?因此我们在来到这个页面的时候呢,我们还需要再加上一个东西,你看了哈,在这个位置啊,那么这个方法呢,就是我们去往这个添加页面的这个方法,那么在去往这个方法之前呢,我们还需要什么呀?哎,就是啊,设置页面中要回显的数据,那么这个数据的话呢,我们就直接map.put put一个什么呀,他要通过什么来找啊,Command OK,那么我就必须得使用command这个key,而这个我们就直接用一个employee是不行了,那么你所用出来这个employee,它确实是一个对象,但是呢,它是一个空对象啊,对吧?那么他将来回想的时候,能从这个对象里面找得到我们的这个属性吗?找得到这个属性吗?
08:49
可以找得着吧,只不过找着以后,我拿出来的纸都是一个空嘛,那空不就不回响了吗?明白这个意思了吗?OK,来,那么接下来我们再来试一下,好,他已经帮我们部署完了,我们再去回去访问一下,来刷新。
09:04
好走一下来大家来看一下这个位置是不是出来了,而且你能看到我们上周写过的单选框给你生成了没有,生成了吧,下拉列表给你生成了没有。生成了吧,哎,说出了,这就是我们的一个表单标签,那么他会遇到这样的一个问题,我们需要特殊的去注意一下。好,然后呢,稍微再来给大家去扩展一下。啊啊,我们还可以什么呀,还可以啊啊通过一个好这里面啊有一个叫做model attribute,好,我们还可以通过model attribute来指定一个K啊,替换默认的command能明白什么意思吗?比如说哎,我不想使用默认的这个command了,那么我们可以在这个位置呢去给他指定上,可比如说我就叫做employee,那么假如说你这个位置写成employee了,那么将来他去找数据的时候还会用command吗?不会了,那么他会使用我们的employee,因此我们在给他数据的时候,这个位置就不能使用command了吧。
10:10
能明白吗?来,我们先来测试一下这个效果啊,你看好了回去我们再来刷新一下,再点一下,你看又是这样的异常,说什么呀,我通过command找不着了啊,Sorry,我通过employee我找不着了。是不是给他替换了对吧,那么如果说你想让正常的话呢,这个位置你要改成改成什么呀?Employee听明白了吗?啊,把这个位置呢,也给它改成这个引EMPLOY1改成引号一以后呢,啊,我们再来做一个测试啊回去我们来刷新一下。来走一下,你看这个是不是又可以了,看到了吧,啊,这个又没有任何问题了啊。啊,那么这就是我们啊。最后做了一个功能,就是。
11:00
点击啊我们这个添加,然后呢,去往我们的一个添加页面,就把它做好了,所以说这个话题的话,主要就是给大家去讲一下我们在使用这个表单标签的时候呢,会遇到的一个数据回响的这个问题,那么大家必须得知道怎么去解决它,明白了吗?都OK。啊。
我来说两句