00:01
来,我们。呃。来大家看啊,就是说我们现在现在是我们这个表单已经准备好了。下边考虑是怎么去提交这个表单。我们对照一下我们这个流程图。呃,都能都在这儿哈。我们是去。第一个表单的页面啊,提交第一个表单的页面过来去找这个handle德ler的这个方法,看一下我们这个handler见了没有啊。呃,在里边。哎,得去新建一个handler。嗯。就跟这个图里边,咱们叫一个名啊。
01:01
然后呢,这里边儿有这么个方法。Public。呃,这个哎呀,我想想啊,这个是不对,这是consumer里边啊,它是要跳转页面,这个是不带rest。哎,我们这个完事以后呢,从图上看,这边也是完事以后跳转页面啊。所以说呢,这儿就是返回的是四队。就是说这东西呢,我们都是一点一点去写的啊,就是说谁也没办法说一下子把。全部的都写好是吧,然后这边咱们说直接这个一行一行直接按顺序把这个代码写出来啊嗯。这个我们写程序就跟这个作曲一样。啊,一个交响乐啊,正常作曲家呢,是先写,先写上这么一句是吧,这是主旋律,然后再想想我这主旋律呢,我用什么乐器去给它配一下呀,有什么乐器去做个和弦呀,哎,然后这个我这个节奏啊是吧,是高低声部啊是再配个配个。
02:16
呃,这个怎怎么怎么弄哈。作曲是这样的,只有谁不是这样的,莫扎特。他写的时候,他作曲的时候,他总比写这些乐谱的时候,他脑子里边这个乐谱已经完整的有了。他不用写一句,再想想别的,他是这么,他是这么,他贝多芬作曲呢,相当于就是这么一个感觉。莫扎特莫扎特。呃。就是它是这么出来的。就是它是一次性这个横着这么这么平推过来的啊。那是神童是吧,四岁,四岁写了一个歌剧。
03:00
好像是哈。不可思议是吧,让我们觉得啊,但是我们我们就不要去想着,我们就得是写一点想一想,写一点想一想对吧?哎,我们现在要写这么一个函数啊,写这个写这个函数呢,我们就是先现在下边咱们想一下这个地址是怎么过来的。这个地址呢,是我们去提交这个表单。提交这个表单过来的,那么就得去看一下,这事就得是有根据的了啊,不能我们自己瞎写了,就是这个表单。然后呢,这个它的action这个属性就是这个值。哎,然后这个project呢,是经过做的时候啊,需要有这个project。然后呢,这一部分呢。CTRLC啊,这是我们这是我们这一部分,呃,咱们这统一一下,咱们把这个。HR都去掉哈。CC。这是我们这个地址。嗯,当然这个地方回头我们得去确认一下啊。
04:02
我们要是这么写的话,它会不会这个地址呢,回头会变成这个local host。呃,是比如说。是是多少啊,是5000是多少啊,会不会变成这样啊,如果这个地址回头会变成这样的话呢,这边还得改一下啊,这边就这边就其实呢说。你是这么写的话是最保险的。就把我们这个域名都带上。然后呢,再写这个project,后边就是跟这个一样。哎,所以我们一会儿去确认一下啊,看看这么写的话,会不会有这样的这个问题。嗯。然后呢,我们从这。访问这个地址过来走这个函数,哎,然后这个里边的话呢,我们要去接收这个表单的数据。这个表单哈,这个表单项有很多,咱们不从这边看了,从这边看这个代码太多了啊,这个看起来太费劲了啊,这个怎么看呢。
05:04
哎呀,这个。最好是能跑起来是吧。可是我就停了。哎呀,这个就比较费劲了哈。不跑了。再跑起来是一样的是吧。项目发起人信息过来,这边回报设置确认信息过来,找到我们这个表单哈。表单项。这有引铺。这个内膜等于。Type ID的历史。这没有加引号哈,我给它加上引号。他这个tap ID的list啊,科技的ID是一。呃,设计的ID是二啊。生意的ID是三。嗯,然后呢,我们这个东西是一个属性tag ID的list。这个和谁是对应的呢?看我们project view的里边。哎,就是这时候大家我们可以这个表单呢,和我们这个实体类呢,可以对照着来看啊,Type I list对应type list。
06:07
然后往下呢,这个这些是标签。标签呢,他们应该对应的是它tag ID的list,然后这些标签呢,和这个对应吧,中间有我们一部分GS代码去做的这个转换。哎,在真正提交这个表单的时候,把tag ID的list拿到遍历,遍历呢,每遍历一次生成一个input type等于hidden,哎,所以说呢,这个对应的是这个。表单隐藏域的name等于tag ID list,和这个tag ID list是对应的啊。这是这是在这儿,这个对应关系是在这儿。再然后呢,嗯。这个标签这边过来,然后呢,再往下。项目的名称,Project内幕。和这个project是对应的。然后呢,Project这个是对应的。
07:00
再然后呢,这个money和money是对应的。天数对,和这个D是对应的。然后呢,这个页面上当然就没有这个创建的时间了,这个是我们自己去给它。呃,去给他存一下,而且其实这个呢,应该是。呃,你最后点保存的时候啊,全部收集完了以后,点保存的时候啊,去去生成一下这个值,现在还可以先不用。哎,再往下呢,是这个头图的路径。投图路径,我们怎么去拿到投图的路径?呃。这有一个文件上传。我们强行的把它给隐藏了,它本身不是隐藏的。Display设置为none是把它强行给隐藏,强行给隐藏了的话呢。这个had had picture对应这个。对,这个地方是这样的哈,你看他俩还不是完全一样。这个header picture呢,是这个图片本身。
08:02
我们得拿这个东西呢,给它上传到我们的这个oss上面。图片本身是上传到oss上面的。然后呢,Oss上传完了以后,我们去拼一个。拼一个访问的一个路径啊,拼好了的这个路径呢,去存到这里边。啊,这个是这么一个这么一个效果啊,所以这个东西,这个东西不是表单直接提供的,是我们拼出来的。哎,然后下边这个详情的话呢,意思是一样的啊,根据这个detail picture list,哎,上传这些图片的OS。呃,然后呢,每一个图片会返回一个路径,这个路径呢,放到这个详情图片的路径的集合的里边。然后呢,这边是发起人的信息,发起人的信息呢,它需要对应我们这里边的member lunch in VO。哎,先用这个属性。
09:01
先用这个属性去找到我们这个级联的对象,再到级联的对象里边呢,再去访问它具体的属性,Description simple。哎,再去找这边的description。再去找这个手手机号,诶,再去找这个叫服务的客服,客服的电话,嗯。所以在这呢,他用了一个级联属性的方式去访问的。所以说呢,我们现在这个地方吧。呃,接收呢,就是应该用project VO去接收。但是同时呢,还得考虑这里边儿有两个这个图片啊,有两个图片的信息。所以在这的话呢,这个project VO是肯定要写的。还有呢,上传的这个图片。Multi part。A fair。
10:00
哎,这个第一个呢,是我们的什么呢?项目的头图。头图是。Hi a picture。啊,就是这个。嗯。这个东西是和一个具体的文件对应的,这是和具体的文件对应的。啊,就是用它接收到这个文件的数据,再用他的数据上传到oss上面。然后呢,还有一个下边详情的图片,它是一个list。Detail picture list。这个呢,我们得用multi part field的一个list来接收。把历史的导向报。猫。Part。嗯。哎,是这么一个,对,一会儿我们存完了以后呢,得用到session。
11:03
这个session呢,后边还需要,呃,我们得去确认一下啊,这个session看看我们这边。确认一下是不是有配这个session的共享。哎,Session store啊,这都有了。啊,所以说这边这个接收的话呢,是这样接收的哈。Project VO呢,这个是用于去接收。呃。除了。上传。图片之外的其他的普通的数据。这个呢是接收我们。上传的头图。单个的一个头图。这个呢是接收我们。呃。这个是接收这个。上传的详情的图片。
12:02
啊,它因为是有多个。哎,这个session的话呢,这个是我们说。嗯。用来将我们这个project。就是说将收集了。现在只是一部分数据啊。这个project VO对象去存入三生域。嗯,这是我们需要传的参数哈,这些这些这些地方呢,就是和我们表单去对应的啊,然后这个下一步呢,是看这边具体的操作怎么做。
我来说两句