00:03
来,咱们下午开始这个交易这模块了啊。啊,今天下午呢,咱们来做一个这个交易的这个添加操作啊好。看一看这个交易这一块啊,咱们都需要这个完成哪些啊。好啊,首先啊,咱们今天下午啊,最重要的是什么呢?打开这个添加页啊,把这个添加页给它处理了,点击保存做一个添加啊,我们需要处理的东西稍微多一点啊好,那么这个添加做完了之后呢,还是啊,点击咱们这个交易的这个名称啊,跳转到详细信息页。好,那么这个详细信息页啊,除了铺上这个详细信息之外啊,我们还要展现这个。
01:02
交易啊,该条交易所对应的这个多条的这个交易历史啊,那当然也有可能是一条,对吧,但是我们这个交易和这个交易历史之间是属于一种一对多的关系,对吧?好,这种形式啊,我们不陌生了啊,不陌生了,其实这个东西自己就能完成了,是吧?好,这个东西做完之后呢,我们最重要的是要把这个交易的这个阶段啊给它展现出来,这个要求大家什么呢?这个我们后天啊,因为明天咱们不是这个回去做练习嘛,对吧?啊后天回来之后啊,这个上课的时候,老师把这个阶段啊给他这个讲完之后,要求大家在这个课堂上上课的时候啊,就马上就给他写出来,因为这个作为这个交易的这个阶段呢,这个我们之前啊,是作为一个这个扩展题啊,也就是说啊。就对于这个阶段这个图标这个展现呢啊,不要求大家这个啊,不要求大家就非得啊就自己能给它写出来啊,不作为考核的一项,但是呢,这个后期咱们这个内容进行一个这个整改啊,要求大家把这个阶段呢啊一项一项啊都给他这个列出来,然后老师上课这个写完之后,然后后天会给大家这个留时间啊,上午会给大家留时间,下午也会留,OK吧,好完成我们这个啊阶段的这个展现,然后通过这个点击啊这个图标来改变这个阶段,改变完阶段之后,再为这个每一个阶段啊重新啊赋予这个阶段的这个文本,以及相应的这个图标啊啊这一套下来之后啊,这一套下来之后啊,就是啊我们啊所有的这个啊核心业务的OK吧,好,然后呢,这个等下周回来之后,咱们再做一个这个统计的这个图表就行了,我们要做一个这个统一交统计这个交易阶段。
02:52
这个数量的这个相应的这个统计图啊,这个到时候再说了啊,OK吧,好,那么今天下午咱们这个任务啊,就是这个,先点击这个创建按钮,跳转到这个啊,行,这个交易的添加页,那么大家注意看啊,其中有几项我们不是不很陌生啊,这个所有者啊,来看一看,还得过一下后台取个优表,然后其中阶段啊,类型和来源都是我们在这个线索中貌似都做过的,对不对,都是来自于这个数据字典中的这个取值啊,都是来自于咱们这个服务器缓存中,是这样吗?好呃,那么其他我们还需要处理什么呢?来看一看啊,这个日期啊,在这里边有两个直接铺这个日历的控件就行了。
03:43
啊,咱们还得处理一个这个客户名称,这个客户名称要求一个这个自动补全。啊,这个也很简单啊,用我们前端这个插件帮我们这个来做就行了啊,对于后台来讲,肯定得我们自己写OK吧,好,然后今天下午把这个重点放在这上啊,这个阶段和这个可能性的这个对应关系上啊,一会呢,我们需要拼一个那个杰森啊呃,市场活动员和联系人名称这两块啊,咱们就不写了,OK了啊,这两块咱们以前都已经写过了啊,写过一个这个。
04:18
单选框的一个这个复选框呢,OK吧,啊这两块咱们就不写了啊啊一会儿把这个值给它写死就行了,好那么首先啊,咱们来看一看。嗯,找到咱们这个交易的这个列表啊,把之前所有的close掉。啊,从前端来讲的话呢,这个404的这个问题啊,我们都已经解决了啊好,来看看worker bench下面的啊在这好worker bench下面的这回是什么呢?这回是咱们这个transaction交易这一模块,OK吧,我们需要接触的是这个index JSP啊这个列表页,然后呢,添加页,一会我们的save.jsp,以及我们的详细信息页detail JSP啊这个修改咱们不改了啊啊一共接触过啊这几个这个页面啊,那一会儿呢,咱们从这个index JSP开始接触它,OK吧,好,那么作为这个后台来讲的话,咱们还没有搭建的啊呃,首先呢,这个。
05:27
看看这里边啊。呃,Doin和do咱们是都已经有了,来看看啊和history这两张表看到没?来咱们这个train和train history啊,Domin和这个咱们这个DL啊都已经啊搭建完了,因为我们在做这个线索转换的时候,用到了这个交易和交易历史相关的表,对不对,好,所以说这个DL啊,咱们写完了啊,然后咱们这个刀面啊都有了,那接下来呢,咱们创建一个这个service啊,把这个基本的这个啊后台结构啊给它搭建一下,好六出来一个。
06:07
接口对吧。应该叫做。VSE对吧,Trainer啊train service好。在咱们这个ipl下啊,来一个。Train。Service I implement,咱们这个train。Service,好,那么完成我们交易相关的这个业务啊,需要使用到啊两张表对吧,分别是train。DAO啊,咱们来个DAO。好,Circle you get circle session get member啊,来个train d。
07:00
ao.class啊好,还得需要咱们这个交易历史表啊,Train啊train history。行。啊,业务层啊这些。啊,接下来呢,咱们再来这个控制器啊,给它搭一下。咱们来一个C。哎呀,这个咱们直接粘一个得了行吗。它里边还有那个咱们那个模板模式呢,对不对。Controller啊,来一个啊,进入到这回是交易控制器,对吧。啊,咱们一个模块。一个控制器嘛,对不对。好,下边内容啊,咱们给它干掉,咱们这个线索写的,其实啊,从代码量来讲的话,没有那个市场活动写的多是吧。
08:09
来叉叉叉啊啊尽量啊跟我们这个前端的这个路径保持一致啊,咱们那个前端不是咱们那个缩写去啊前端叫什么呢?Work问是是不是叫这个transaction啊。啊,尽量保持一致啊,咱们来这个。Transaction。行了,打成一个模板。外插苗。好,最后咱们是交易控制器啊。
09:11
来。Action con啊没问题,行了啊,基本结构啊,前端后端结构啊,咱们都答出来了,呃,接下来呢,咱们就来看啊,我们的第一个需求啊,呃,在我们交易列表页上啊,点击这个创建的按钮,OK吧,啊,点击创建按钮啊,跳转到咱们的这个添加页。啊啊,这个东西咱们以前呢,这个都没有实现过,对吧,因为我们以前用的是不是都是模态窗口的形式,对吧?啊,我貌似第一次跳转到这个添加页啊是吧。来试一试啊。
10:08
嗯,来交易了啊,点击创建按钮啊,跳转到一个c.GSP上,跟以前线索和市场活动都不同,以前是打这个模态窗口,对不对啊,跟以前不一样,OK吧,好,那么从我点击这个按钮到打开这个。添加交易的啊,这个GSP这个之间咱们是得把后台啊。这是肯定的啊,为什么呢?咱们是不是还有一个什么呢?哎,这个所有者呢,但其他这三项是不用啊。好来,为了这个所有者啊,咱们还得国宝后台找到创建按钮啊,啊在这。创建啊。创建好咱们这个需求啊,啊,跳转到咱们这个添加页,当时怎么约定的,还记得吗?是不是ad或者是这个create呀,对不对,好或者是什么呢?你发出这个请求到后台,这个目的是不是为了取得这个用户信息列表。
11:15
对吧,啊,其实啊,你发一个叫一个点get这个user list其实也可以OK吧,好,我先暂时管它叫做a.do了啊ADD点度好。嗯。先走后台是吧,把这个结构先铺上啊。Ad点度。诶,突然之间不走,阿贾克斯请求了是吧,来。这个ad啊,有很多这个默认的方法啊。呃,需要你把这个,这回你真是得需要把这个光标啊,给点到这个abd这个里面来,你在这个边上不行,它乱给你升能理解吧,点到里边来再创构建这个方法啊来s out来一个啊进入到咱们跳转。
12:16
到这个啊交易添加。页的操作,我们现在接受并处理的是一个传统请求,没问题吧,哎,这就是一个相当于是一个超链接对不对,Her嘛,对吧,好ad啊,好,那么我们现在这个目的啊,为什么要走后台呢?要取这个用户信息列表对吧,还是老套路啊,同学们,User service,我们来一个us,等于service factory点。Get。Service,好,又出来一个user service I。把这个user啊就啊啊user service对象拿到了,然后通过调用咱们这个get user list还记得吧,好。
13:10
咱们来个list啊,这里边是user啊。List好,按照我们之前的做法怎么做来的普杰森了,给他转那个杰森串了对不对,但是现在我正在这个接收的是一个传统请求对吧?好所以说啊,传统请求干嘛,Request预存值大转发对吧。Request set attribute you。List,好,当一个转发,点get request啊,点forward request,然后呃,Rice Bo啊,行,这里边咱们来叫work be取下的。下面的。
14:02
C点减SP对吧。诶,写完了啊,写完了,然后呢,我们找到这个目标页啊。目标依然在这儿呢,Transaction下面的这个c.JP啊行。咱们开始处理这张页面啊,嗯,这回啊,我们得把这个u list当做我们以前那个数据字典那样进行处理,对吧?啊,只不过以前是从上下文预对象中取值,这回从request预对象取这个U啊,我们得需要使用到JSTL,没问题吧?啊。来C好。找一找啊,咱们这个。
15:00
创建交易这一块所有者呀,在这儿呢,是吧。来吧,同学们,我先我先来个这个option来个空对吧。C。For each啊,Item v。好,这里边open。行,这个应该是咱们存的一个叫u list啊,应该是request scope对吧,VR咱们来一个U啊。啊,这里边儿咱们来优点。The。然后。有点什么?IID吧,你别别弄乱了啊,我们以前那个数据字典是什么什么点T,然后这里面是什么什么点value对不对啊,不一样啊好。
16:05
啊。来试试看啊,就这种需求,现在对于我们来讲的话不在话下了,是吧,很很容易了啊啊,这个阶段咱们玩了多少个需求呢?看看啊,这应该成老油条了。这至少20个需求了是吧,至少20个需求了啊。咱三一二三点登录啊,咱们来交易点创建好所有者没问题吧,哎,有了。那么还是像以前一样,什么当前登录的这个账号啊,这个名字就是我们所有者默认的这个下拉框的这个选项,对不对,那以前我们在这个JS中进行这个操作的话,那是很容易的,是这样吗?那现在我们拼接的这个option啊,不是在JS中拼的呀。
17:06
怎么办呢?这个东西啊,就不要再猜了啊,那这个东西你们以前应该是没有接触过啊。EL表达式里边是能运算的,对不对,但是我们其实是没有听说过是这个运算,也包括咱们这个三步运算符EL表达式中啊,大家注意啊,其实也能够使用三步运算符,这个东西以后用的比较少啊,这个不用特意去记它啊,用的时候直接拿过来就行,这个东西给你们拼一拼啊。什么意思呢?来看啊,你们来个的ID。有点ID。来试一试啊,走。
18:01
好使吧。好使是啥意思呢?这一句话啊,大家注意啊,E表达式中啊,加减乘除基本运算我们以前都接触过了,对吧?好,那么它还可以使用这个3B算符啊,好,首先我们看到啊u.ID表示的是谁?Session scope吧,对不对?说当前登录的用户的ID啊,EQ表示什么?ES吧,跟谁比呢?u.ID是不是跟我遍利出来的这个ID一下,我每一次遍历出来一个ID都要跟我当前登录的这个用户的ID来比较一下,OK吧,如果啊,它们是相等的啊问号咱们来个什么?Select是默认表示的是这一项是默认选中状态啊,否则呢,咱们输出一个什么呢?空串,那么需要大家注意的是什么呢?我们以前用的形式是不是都是这种形式,对不对啊,其实我们从来没有遇到过这种形式啊,Dollar什么呢?是不是这种字符串的形式。
19:07
好,其实这种形式就是把字符串的这个信息啊,User输出到这个浏览器中,OK吧,好,所以说啊,这二者之间是有差别的,OK吧,所以说我们现在在EL表达式中,如果输出一个select,它就相当于是什么呢?它相当于是不是就是一个字符串,这个select能理解我意思吧,OK吧,只不过是不加这个双引号的,看到没。啊,这是不是就很合理了,OK吧,好,那么否则的话呢,大家注意啊,这个空串代表什么呢?就是什么都不发生,是这样吧,好行了,这个不用刻意去记啊,这个以后用的还是相对来讲少一点啊。行,这个有了,那其他三个呢,我们依次填一下啊,有阶段类型和来源啊。
我来说两句