00:00
那下边写另一对map service。再一个是根据那个市场活动的ID,查询该市场活动下所有备注的信息。知道吧,所以那这个地方要查市场活动备注那个表了,那要查那个表,那个表我们已经从来没操作过,那我要写他的map层的代码,签入了三步部分代码实体内map接口映射文件,我说这些代码不可能让大家手动写的。所以通过my body的立项工程,直接让他给我生成这三门代码就行了,所以下边我们就使用MY8立项工程生成市场活动备注这个表对应的map层的三步代码,那我来找找这个逆向工程,来找找逆向工程去了,那改一改配置文件就行了,那改哪儿?那我看改哪儿?来看上面这些跟数据库相关的需要改吗?不需要,不需要改,对,你只要你的数据库没变。你只要你的驱动位置没变,这些都不需要改,然后呢,大家下边这这个路径我们也不需要改,因为我们的代码工作空间没变,再一个呢,这些包需要变吗。
01:08
对,不需要市场活动备注也是属于业务管理的功能,所以还是放到沃克奔驰下边相关的这些实体类这些包里边去,所以这就不不用变了。同样道理,大概这些也不用变,生成了map的映射文件,所存放的位置也不用变。然后呢,还有生成map层的这个接口,这些位置也不灭,那只需要变成,只需要变那个表名就行了,把我们要根据市场活动备注那个表生成的那个代码的那个表打开就行了,那打开之前先把以前的表注释了。一定要注释了,不注释掉的话,他又给你整那边以前写的代码全白写了。所以那下边我们打开市场上的备注这个表,那市场上备注是哪一个表,这个表对这个表,那这个表跟咱们的表好像不一样,因为我们做了简化了,他这个表太多,他这个表太太沉了。
02:02
啊,所以这个表名太长了,所以我们给他做了简称了,这地方来让它,然后呢,这个地方把它打开就行了,那当然这个表名肯定要改成我们自己的了,那我们这个自己这是我们改造过之后的CTRLC把它拷贝过来,然后呢,这个地方来写到这了。然后呢,大家这个地方这个实体类,我们也给它按照我们的来命名了。那我们认为我们也取这两个单词,一个是activity,还有一个mark,这是市场活动备注的实体类。这样的话,大概我们这个就打开,打开之后下边运行my body的逆向工程,给我生成map市场活动备注这个表对应的三步map成三部代码,然后呢,这个地方一运行大卡,它就给我生成了。好,那这三种代码就生成了,生成完了之后,大家我们来看一眼,然后呢,这个地方来一个这个代码,这是市场活动备注的实体类已经有了,那么实体类。啊,当然我们说它这个这个实体类,我们说它里边这些属性跟市场上的备注表格字段相对应啊,哪些字段你看他刚才有这些字段,这些字段一个是这个ID备注内容,备注的创建时间,备注的创建者,还有备注的修改时间,备注的修改者,还有一个备注的修改标记,还有一个最重要的一个,对这个外键这个条备注是属于哪一条市场的中知道吧,好,这是我说备注的map接口。
03:31
备注的映射文件知道吧?好,那下边我们在这个基础上来进行开发了,那开发首先在市场活动备注的map接口里边加一个方法啊,加一个方法,这个方法已经设计好了,根据市场活动ID查询该市场文下所有备注的明细信息。所以这个地方我直接写了放个值list list里边是一个一个的市场活动备注的设计的对象,知道吧。然后呢,我们直接写这个方法了,来查询到select,叫activity,然后activity,然后呢mark,然后呢,这个是for,让它by ID,然后呢,这个地方,哎,然后这里边传个参数,这个参数是个字符串,为什么字符串,那让它是一个什么BY这个市场活动的ID,这个地方byiv ID,然后呢,因为这个地方它是IVID,根据IV的ID啊对,来查询该市场活动下所有的备注。
04:33
那我们这个地方根据IDID来查询该市场活动项,该市场下所有备注的明细信息,听到了。好,这时候我们这样,那这个方法定义好了,下边来提供一个搜索据了,那提供一个搜索据,在它的映射文件里边提供搜索据,那就提供吧,这个地方来,那查询的搜入句在这个地方加一个叫select,知道吧,然后呢,这个地方来拿过了ID要和方网名一样,所以又把这个方法名拷过来了,CTRLC拷贝过来,放到我们这来边参数传尔米特,它根据市场活动ID去查,那市场中ID是个字符串,这个字符串。
05:21
然后呢,结果result map,为什么map,因为将来查询市场我的备注,每一条市场红的备注都封上一个备注的实体对象,那实体类对象的属性名和查询有可能不一样,所以我们这个地方要返回比外,然后呢把这外部拷贝拷贝,然后呢放到我们这里边就行了,嗯。然后呢,放到这里边,那在这里边写我们客户鱼了。那查询的数据来,然后呢,From从哪个表里边抄。对查备注,那肯定要从备注表,他是主表。查询他的哪些字段,你看你前台需要哪些字段,你查哪些字段,前台不需要,你查了也白查,除了影响效率,那你看啊,那个前台需要哪些字段,需求说了算,需求在哪,需求在这个名,在这个什么这些这个项目原型里边,这都跟客户确认好的,那你看这些备注,每一条备注都是查哪些字段,首先大看是这样,鼠标放到这个每一条备注前面有个头像,这个图像表示什么,这个图像是表示这一条备注是谁创建的。
06:29
那个创建者的就这条备注,创建者的那个用户的头像,就每一个人都有一个自己的头像。按说这都有一个头像,但咱们这个头像咱们没做,反正你知道他是一张图片,就每个人应该就实际开发应该都有一个头像,你说但这个头像怎么了,但你把鼠标放上去会显示这个人的名字,那比说这个地方,那应该显示这条备注创建者的人名,所以创建者这个字段得查出来,而且得查创建者的名字。
07:01
那么所以说大家我们知道市场红的备注,这个表示本有一个字段叫创建者,那创建者他那字段肯定是外键引用用户表的主件,那这个地方我们要进行将来肯定要连接查询了,查接什么查询那个创建者的名字知连接用户那边好,这是一个字段的操作,还有什么,还有这是这个地方备注的内容。还有这个备注,这叫备注属于哪个市场活动,哪一个市场换成市场名字写的,那哪一个市场活动,其实咱们就上面主的市场活动,因为这就这个市场,这个备注肯定是属于这个市场功。其实大家这个字段不用查,因为什么?因为上面这个明信义里边已经有了,所以这个字段不用查,所以这条备注属于哪个市场活动的这个这个不用查了,所以现在我们已经查两个字段了,创建者的名字,还有备注的内容,下边这个时间,这个时间是这条备注创建时间或者是修改时间,诶你说老师一个时间怎么既可能是创建时间,也可能修改时间,他是这样,他这个备注是这样。
08:01
他这他这个他这个显示的时间是这样,他说这条备注如果刚创建没有人修改过,这个地方就显示创建时间那个字段。如果这条备注以后可可以对他修改,如果修改了,那这条备这个地方就显示修改时间,知道吧,那到底创建了,到底是什么显示创建时间还是创建还是修改时间,这个地方就看到这条备注有没有被人修改过,那有没有人被人修改过,怎么看它有个修改标记叫edit flag,对edit flag哪一个叫备注啊,那个备注点进来,它有个edit flag,就这个字段,这个字段值是大纲,它只是一位,是个定长的字符串,其实它设计的时候,这个字段只能取一对对零或者一一,就表示这条备注有人修改过。零表示没有人修改,所以将来我们这在这个地方到底显示创建时间还是修改时间,就判断那个修改标记是等于零还是等于一。如果等于零,这个地方就显示没有人修改,就显示创建时间,否则如果等于这个地方就显示修改时间,所以这个地方我们得查询,不但显示创建,不但要查出来创建时间,修改时间,他得查出来修改标记啊,因为他不管显示哪一个,但是我们写代码我们都得查出来知道吧啊所以说他这三个字段都查来,下边这个还有一个这个一个人名,这个人名也是显示,要么显示创建,创建者的人名,要么显示修改者,到底显示创建者还是修改者,那就是看修改标记,所以这个地方也得查询修改我们标记以及创建者的名字以和修改者名字都得查出来,所以对我们写程序,他不管显示哪一个,我们都得查出来,知道吧,所以这些就查了,下边还有最后一个哪个这个地方,我们说将来可以对这一条备注进行一点,它弹了一个摩擦窗口,可以修改这条备注。
09:52
啊,那就一点了,对么,谈论摩托,然后把这个备注的原来内容显示到这里了,那么将来我们说到底显示哪一条记录,将来肯定要根据ID来确定去显示哪一条备注,要修改哪条备,包括将来一点这个更新按钮,也得把这个这一条备注的ID也得发到后台,因为要修改这条记录嘛,还有大家删除删除备注一点,它把这条备注删了,那肯定要获得发请求,把这条备注的ID发到后头啊,所以大家根据我们刚才的分析,我们说应该把市场活动这个表里边这些字段都得都得查出来,显示出来,因为前台需要哪些字段。
10:31
备注的ID,备注的内容还有呢,备注的创建时间以及修改时间。还有备注的创建者以及修改者,以及修改标记,这些字段都得查出来,那我们你再看一看,再看这个表准有哪些字段,其实就这些字段是吧,最终还是多了这个字段,这个外键,这个外键不用查,那这个外键不用查,这个外键是不是就没用了呢?有用干什么?作为查询条件,你要查备注,查询哪一个市场活动下的备注,所以根据他去查,比方我们上次给给他写搜手页,也是根据他去查,查询某一个市场活下所有的备注,就跟着他去查,知道吧,所以总的而言,我们经过我们的分析,应该查询知道吧,备注表里边的所有字段,就除了那个外键之外所有字段,而且相关联的字段,创建者和修改者得查连接查询,查名字,所以下边我们就准备查了,那查的话就进连接查询,先给它起个边名,这个边名我就叫A2了,A2了,那把备注这个表里边所有字段,除了外键之外所有字段直接查出来了,那我直接查了这个地方来个A2。
11:38
首先查ID,叫备注的ID,还有AR备注的内容叫note count note count,还有备注的这个创建时间,然后呢,这个什么ar.ar点创建时间叫correct correct,还有备注的创建者,那创建者我们说连接查询得查创建者的名字了,那创建者名连接查询内链接还是外连接。
12:05
连用户表内连接外连接对创建者不给为空内连接,内连接直接连了这table这个表,U这个表起个边成UE连接条件啊叫A2点叫可瑞,这字段等于叫U1.id啊,然后这个地方去查u1.nameas放到career by这个字段子知道吗?这是我们说这两个字下边还有修改时间,那修改时间直接查叫editit,看edit啊,然后下边还有修改者,修改者也是外键连接查询,那连接查询。是不是外连接啊外你看修改者有可能为空外连接,那就是left主表在左边,左外连接,连接用户这个表,然后呢,这个地方来个user u2点连接条件啊,叫a2.editby这个字段等于U2.id,然后呢,这个地方叫u2.namenameas是我们的叫版。
13:10
这个字段放到这里边啊,下面还有一个修改标记把,另外前台也需要修改标记,所以叫a edit flag这个地方直接查,不是外键直接查就行了。好,这时候我们说的这样的话,我们就把备注表里边除了外键之外所有的字段都查出来了,而且相关的组长查名字,下边查品条件,根据谁去查。对,根据那个外键叫activate的ID,我要查询的是这个市场功能下所有的备注是吧,所以那就AR的IVID知道吧,然后呢,这个地方大家传用了一个叫艾ID知。啊,当然这里边这个名字你随便起,你叫啥都行,它就就相当于一个形参一样,你从前台那个这个方法里边传过来一个值就行,这样的话,当然我们这个4251就行了,根据艾的ID查看该市场文度下所有备注的名气信息,懂吧。
14:08
这是这那这个serve预写了这个map层就行了,Map层写了下边我写示service层了啊,然后呢,在市场活动的service,这市场活动备注的service加一个方法,这个方法是根据市场活动ID查询该市场文所有备注的名义信息啊好,下边来写这个service,那这个service以前我们从来没写过,没写过在service层里边,然后呢再加一个service。好,在这里边再加一个,然后呢,这个地方来右键再加一个service,然后呢,写一个service,那service我们说这个地方来个叫activity,这都设计好的,Activity叫remark,这样的service它是个接口,用面向接口编程,这样就可以了,在这边定一个方法,那这个方法咱们也设计好了,放位值list list里边是activity remark实体的对象,然后在这里边提供一个方法,这方法也都设计好了,叫que activitymark,然后呢,For,然后呢,Detail啊,For by activity ID,这都是设计好的,然后呢,在这边乘一个参数,这个参数叫艾KVID,好,这样的话呢,我们这个方法就定义好了,然后把这类该引进的类引进来,这样行了,方法定义好了,那在实现类里边也得加这个方法,所以我们这个地方再加一个实现类。
15:35
这个实验类叫市场活动,备注的service的实验类叫,然后呢,Mark service IL,这是一个类,它来实现我们这个service。然后呢,这个是mark service。好,这是我们这,那这个它这个service类,那我们得加个注解,Service注解来一个注解。
16:03
那我说这个地方给它起一个在spring容器当中,那么说这个B呢,给它起个名字,我这个地方就叫它。这一个类我们定义好了,定义好了我们说我们这个类实际上了这个接口,那他要把这个接口里边定义所有的方法都得实间啊,Out insert method。然后呢,这样的话,我们这个方法电方那方法电下边来写这个方法,那消费层方法的实验要调map,调map层这个地方叫注入进的一个map。拿完之后来map,那这个注是谁谁的map activity叫remark map,市场活动备注的map,然后呢,这个地方看市让我们备注的,然后呢,这个地方注入进来,来这个地方来一个叫凹凸。然后呢,直接调这个map方法就行,我们直接调了它,那它里边这个方法来一个select,就调这个方法叫activity by activity ID,那把这个activity ID传上去啊。
17:05
这样的话,我们这个service也写完了,知道吧。啊,你只要设计好了,反正这些都是类似,都是类似的。好,那这样这个service就行了,Service写完了,那这样我们map service2对map service都写完了,下边准备写CTR了,看到它下边我们来写CT了,在市场活动这个,在市场活动这个CTRL里加一个方法,然后这个方法就是一访问它就要跳转到市场活动的明细页面去。查看市场活动明细,所以我们这个地方在这边加一个方法,在市场活动品出料里边加方法,你说老师你这个地方怎么不写市场活动备注什么,因为我这个查看查询市场活动的明细,所以我这个地方写市场活动填出了在这里边加方法,然后呢,这个地方加一个方法,来这个方法来一个CTRL相的方法拉过来以后范围值范围什么类型的。
18:00
访问什么类型的,访问什么类型的,对跳转页面是不是访问那个页面资源路径啊,对资源路径字符串,当然你们以前学的model view也行,但是就是model view,你得自己溜一个model view就稍微麻烦一点,这我们这个地方就仿一个字串就行。下边方法名你随便写了,我这个地方就建明,这叫detail,查看明细,查看什么明细,艾明细,这样的话,我这个方法就定义好了。那下边这个方法要处理来自客户当中请求,那所以说我们给它分配一个URL,通过request mapping分配一个UR,这个URL我们说不能随便写,要和它处理的自源路径保持一致,它处理自源路径就是将来这个方法处理完请求之后,响应信息回到脑子页面。那他这个响应回到哪,那就回到那个明细页面,哪个页面就是这个页面。那看对,那跟这个页面的资源路径保持一致,这个页面在哪呢?在这里边啊,跟这个页面作源路,这个页面作源径,从视图解一起往上找,找人找沃克奔驰activity,所以我们这个地方直接写了这个地方来一个沃克奔驰activity下边资源的名称和方法名保持一致,这个都啊。
19:24
这样的话,我们这个方法就定义好了,好,那将来要跳转页面,不用加入方包,在这里边定一个型仓来接收客户端传的参数,那什么样的行程前台传个ID,那你这个地方就定一个ID,所以我们这个定义一个ID来接收参数就行,好现在我们已经写到这来了,CTRL接收到请求也能获取到参数了,下边调用service号把数据查出来就行了,所以下边来调用service号service层方法来查询网,查询数据和查询数据网,那调三的话,那首先调市场活动的service费组来查询市场活动的明细信息,那调市场活动service费所来一个市场S。
20:15
然后调哪一方法调咱们刚刚写的时候,Query activity for by ID正好把接触到这个ID成功了,它得到一个实体类对象,艾IV实体类对象啊这样就行,好下边查备注,要调备注的service。那调备注的service,那在这个CTRL要注入市场活动备注的service,所以我们这个地方注入一个备注的service。CT层主要是调service,所以它用到哪个service注入只需要注入就行了。我们要用注入一个叫activitymark service,那注入然后呢,这个地方来一个activitymark service,然后呢,注入进来那个auto world,所以这就是spring IOC给我们提供的便利支处嘛。
21:05
叫依赖毒物啊,叫依赖毒物。然后呢,我们这个地方来把它调过来就行了,然后呢,调过来这个地方来一个啊,然后呢,这个地方来一个,大家看那直接调这个activitymark service,调它的方法,哪一个方法就这个方法。根据I市场活动的ID来查询该市场上所有备注的名,那把这个市场活动的ID传过来就行了,这是市场活动ID这项,然后呢,在这里边有个list,得到一个list list里边是一个一个市场活动备注的实体类对象,这。然后呢,我们这个地方来就叫mark list了,变一个变量保存到。这样的话,这个CT这就把所有的数据都拿到了,拿到之后怎么办?现在已经拿到这儿来了,数据都拿到了,下边把数据保存到作用域中,跳转页面就行了,所以我们知道把数据保存到作用域中,那我们就开中,那保存在水盖中这个地方我注入进来一个request了。
22:13
那助力request http request,然后注入进来就行。然后呢,我们这个地方直接拿出来,然后呢,把我们的数据注入去,那注入去来一个这个地方side attribute,那这个数据首先这个市场活动的基本信息,这个K你随便起我就见面这一了,就叫市场活动这个值,那就是X这个对象。然后呢,同样另一个也是一样,Set attribute,这个K,你随便写了,我这个地方就叫remark list,然后呢,这个值,那我也是这个例思。这样的话,他看我们这个数据已经保存到作用一种,保存完了之后,下边就可以跳转到明细页面了,那我们这个地方就是请求转化,咱们昨天给他分析了。
23:01
那这个地方我们做请求转发,请求转发转发到我们的市场活动明细页面,那如何转发return,然后呢,转到哪个页面,把那个页面的资源路径写到那去了。那我要转到哪个页面,就转到这个页面,就这个页面它的资源路径,Work,奔驰activity。那么来看吧,这个地方来这个地方来一个我被尺IK,然后呢,对。这样的话,当然我们这个就跳转过去了。跳转回之后,那现在我们这CTRL就行了,CTRL写完了,后台这些代码都写了。好,这是我们后台代码写完了,下边就前台了。前台,那我们说两件事儿,第一个让发请求,这个地方发一点超级链接发请,第二件处理响应,这个响应就跳转这个页面,在这个页面上去显示就行,显示数据就行了。
24:00
那我们先写这个页面吧,因为它是个独立的页面,先写这个D表GSP,它上面通过EL表示和作用和什么GSTL从作用中把数据取出来,显示到页面上就行了。所以那我们来写这页面,这个页面这个一开始静态页面,把它改成动态的JSP,那改成JSP签额,那么编码base标签。然后我们用的GSTL标签库,还得引入GSTL标签库,那所以这些代码,这些代码比较多了,我我也不一个一个写了,我就直接从这拷过来了。然后呢,这个地方来,这是编码杯子标签JSTL标签库一下全拷过来,CTRLC拷贝过来,然后呢,把它。贴了板。然后把它重命名成JSP,右键重命名,然后把它改成JSP。好,然后呢,一点确定修改,这可。
25:01
好,那我来下边就写这个页面了,那这个页面的职责就是什么?从通过E表示GTL从作文中把数据取出来并且显示啊啊,当然我们加上杯子边这叠点杠都不要了啊,这叠点杠选中CTRL2全部替换re play高全部替换进去,好,这进去了,下边来取数据了,那取数据吧,取的话呢,这模带端口不用管了啊,这模带状口。你看这模特上默认不显示,先不用管它用到时候再说,然后呢,再往下,哎,它这个地方有个爆红的,你看吧,看着不舒服是吧,这个红的他给他改,他是表示什么,他要修饰这个标签。修饰哪一个标签for后边办成标签ID去了吧,那这个ID大概只有谁啊这个ID,这个ID是这个他俩不一致,不一致他修改谁找不到那个标签,所以他就爆红了,他其实没错,他不影响我们使用,但是我们最好这个地方给他来一个。要保持一致,这样就不回了啊。
26:03
好,这是我label翻译成,翻译成中文叫什么。对标签叫说明性的标签,他是对某一个标签进行说明的。You know。就说明啊,就说明对某些标签说明,对哪个标签进行说明,它有个副属性,指定那个标签ID。如果这个标签它找不到,它就爆红了,知道吧,但他他不是用来显示它,即使爆红也不影响我们页面的运行。但是你说看红的有知吧,就程序员最怕红知吧,最怕见,见到这种红色的,就红色的一般都没有什么,都没有什么好事,嗯,红色你看挺喜庆的,但是在程序员眼里边都不是什么好事,嗯,对,程序员喜欢绿色,别扭。
27:01
就这样感觉感觉怪怪的是吧,但是确实不喜欢红色,那也没办法是吧,对确实红色都没什么好处,所以呢,页面上最好不要有红色的出现,嗯啊好,这是我们的这个,然后呢,再往下找的这些,下边这些呢,这才是真正显示出的,这是大标题,大标题显示这个地方啊,就是显示这个,这是大标题。但这个地方有个这个东西,你看啊,这个这是返回到上一页的,就有这个东西,你看哪一个,就这个返回按钮是个超级链接。这返回到上一页去,当然这个地方咱们现在用不到,先不用管它,好下面来看这个大标题,大标题这个地方显示的应该是这个,这个应该是市场活动的名字啊,这是开始日期,这是结束日期,我们来写这个呗,这个地方来用,然后呢,这是市场活动名字,那就从那个作用率里边取了,那取到了就是那个实体类叫activity那个实体类啊,就这个就放到这个。
28:01
就他,然后呢,把它放到这,他的名字那就点儿那。再一个是开始日期,这是美工帮我们写死的数据,我们把它改成我们的动态数据来,一个叫activity,开始日期叫start date这个属性。我说这些属性要拖峰命密法,然后呢,这个是结束日期,这个地方来一个刀符号啊,这个地方来一个刀,诶这个到这个到符号啊,Activity结束日期in。好,大标题这个地方就相中了,显示完下边就是这些信息了,那这些信息你看看,再看看哪些信息就是下边这些。详细信息了。这是所有者。这是美工写死的,叫张方,改成我们的意思了,知道吧,好,那这改一下,这个来取所有者activity,所有者欧。再一个是市场活动的名字,市场活动名字到了时候,然后呢,市场活动的名字内。
29:07
好,这样的话,咱看这一行就显示完了,看看下边下边这一行。当然虽然这些页面是美工帮我们写的,我们不写,但是你最好你要能知道美工咋写的是吧,你可以简单留意一下,因为就是怎么写的,你看大家看他好像是表格一样,他俩放在一行里边,你看为啥他俩在一行里边,他们不在你看啊,你看这个表格,你你看他这个页面他咋做的。这是个div。Div里边是套div,套div。每三个div就显示一个数据。这三个地显示什么?这个市场活动名字,这是所有者。那这样么?由于这四方这三这两个两对,每一每一个都有三个div,它们是属于一个div里边,所以这一个div就是一行,知道它怎么显示一行就是通过这些属性来控制的,知道吧。
30:04
所以这里边儿的属于一横,这里边又是一横,这里边又是横好吗?虽然这些页面不是不让我们写,你最好简单留意一下,那么以后你可能会调整调整它的这个页面,或者我们最常用的就是把里边静态数据改成动态的。那这些数据显示到哪儿,你你要清楚显示哪个标签里边啊。啊,这样的话,大家随着我们这个你要多观察他,你到公司里边有这样多观察页面的这些东,这些代码虽然不让你写,但是你观察多了,你你也能成一个什么,你页面高手知吗?就前端的高手,你也能成前端高手,也为什么?因为那些美工他们天天不干别的,他们就研究页究你研究他的代码,慢慢你的水,你前端的水平,你也给他赢了。你又你又会后台又会前台,那你就厉害了,嗯,对对,那那那那就那你就很厉害了,嗯啊,所以说当然我们这个,所以这些技术你要留意一下,留意一下,虽然不让我们写你不你不要说我就不管了,知吧这些好下下边再看这是一行,这一行这是开始日期导老符号啊开始日期来一个start,这然后呢,这个地方来个结束日期导老符号来有一个activity n啊这个地方好点N啊。
31:30
这样就行了,来这个地方来一个。好这样就行了,然后呢,大看下边这一行,下边这行成本,成本他自己占一行,你看吧,成本还是自己占一行,到了分好activity activity点这扣他自己占行,他为什么会,你看他这是就是自己占一行。下边这是创建者,你创建者来看看创建者,这创建者这是创建者的名字,那都从这个对象里边取,创建者来点瑞办啊。
32:07
创建者后边有个创建时间,这个创建时间,创建时间你看啊,为什么它小,你看因为它放到这个标签里边了。Small这标签啊,这是它修饰,这都有原因的同学,这个然后呢,这创建时间来个Dollar for叫activity叫,然后呢,这个是修改者,Dollar for activity叫版,这是修改时间。到时候哎,到时候然后呢,这个点修改时间edit看好,然后呢,再看下边这个地方是描述,把这描述也拿了。描述然后呢,这个地方呢,到时候那这个地方到了时候,然后呢,描述X特别点叫克瑞。
33:04
这样的话,看看这些基本信息,我们就想到了啊。好,下边我们来看备注信息了,那备注信息再看下边有多条备注,你知道吧。多条备注,你看他每一条备注咋显示的,你看。每一条备注大家看到都是一个div看吗?一个条配注一个地,这是美工帮我们写死的。拿这个div里边的,你再看一看,每一个备注前面有个图片,这个图片谁你看看在div里边,比如这个图片。那这个图片为什么说我一鼠标一悬停在这个图片上面,它就显示一个人名,你看啊,就是因为这个图片上有这个title头属性,这个title头属性大家以前学A前面标签的时候,是不是当鼠标悬停在一个什么图片上的,它会自动把这个抬头属性里边就值给你显示出来。这个边这个属性以前学过吗。肯定学过,忘了,对HTM都学过了吗?学过一系列标签,就这个属性,就对一个标签是一个什么图片的标题,就当你鼠标悬停在这个图片的时候,会自动把这个属性值显示出来。
34:15
知道吗?好,那这这个属性当然是图片最重要的一个属性了,你显示哪一张图片知道。这样,所以在我们这个地方,大家所有的图片,其实就是一个一个图片,按理说每一个人用不同的人都有不同的这个图片,咱咱们这个地方咱们没有做这么复杂。他们做的时候,咱们买他这个项目的时候,他们做的时候每一个人都有个图片,都有个图像,就创建用户的时候要上传一个图像,知道咱咱们这个做了简化了每一个人的头像都用这一张图片。都用这张图。哪一张图片就在这里边儿呢?就这吧,就这个图片看吗。
35:01
对,你看看就就这一张,按理说在这里边,每一个人一张一张图片,每一个人一张图片,那你看你看这个这个图片什么,你看看就这个图片。对,就是这个东西知道吗。这是美工做出来的,嗯,这是对,这是我们这样,然后呢,后边这些大家这个是吧,后边的样式说这个图片占多宽啊,30个像素宽度高度都是30个像素,这些这些都好,都好理解了,就这是30个像素,高度也是30个像素,你知道吧。好,这是总之这个什么image就显示那个图片,那后边这些内容,大家看后边这些内容怎么显示的,后边这些内容用这个又一个div知道吧。这个div里边就显示这些,那显示这些还有哪些,你看这个地方。这个地方这是显示备注内容,备注内容在哪呢?在这个div里边有H5标签啊。显示备注内容,大概再往下还有啥呢?还有这些说这条备注属于哪个市场活动呢?以及这条备注创建时间或修改时间,有谁创下有谁修改的,还有后边两个图标,这些东西都在哪显示的,都在这里边呢?都在这个div里边显示的,哎,都在这个,都在这里边的。
36:16
都在这里边儿。啊。这样其中大家知道方ER里边内容是什么,方里边内容是这些,是显示这些内容啊,这怎么显示的,你看看这是市场活动,说这条备注属于哪个市场活动,这是美工写死的,然后呢,后边还有什么,看看后边有个什么死small标志显示这条市场活动创建时间或者修改时间,创建者或者修改者,就这些,就这些,这些都是。还有再看后边还有这俩图标,这俩图标在哪?这俩图标在这里边呢。在这里边吗?哪俩图标,其实就俩A标签,你说老师我看着像图片,不是图片是什么A标签你看吗?做出来效果怎么做出来,通过这样式做出来。
37:04
加不同的样式,它给我显示不同的图标。这时候我们要说到这,这才显示。这都是美工做的,嗯,这都是美工帮我们做的,知道吧,好,这时候我们还给大家说的这个关于我们的这个这个关于备注的每一条备注都是这么显示的。好,这是这样,那下面呢,大家我们就这样了,我们就把美工呢,帮我们做的这些备注都给它注释掉。然后呢,我们来显示我们自己的备注吧,对,显示我们自己的备注,那每一个备注就应该显示一个div啊,那div的数据从每一个备注里边取知道吧,对下边啊大哥,那我这个地方就要显示我的备注了,那显示我的备注,我们说我有一条备注显示一个div,有一条备注显示div,我到底有多少个备注?怎么办呢?我怎么知道有多少个备注,对,是不是有这个,我们有这个list的,对list里边有几个元素,我就有几个备注。
38:07
那我就可以什么便利这个list的,每次从这个list里边来获取一个备注。那每获取一个备注,在这里边就可以选择一个div,当然这个div里边数据从每次变出来这个备注里边取就行了,所以那我就直接这么来做法,这个地方来我们就可以这么做,便利是便利,我们这个便利我们的叫remark list,看看这一条市场龙下到底有多少备注便利每变出来一个备注来显示一个div,就是显示一个,就每变利出来一显示一个div,就这个div里边就显示这个备注的信息,来显示所有的便利,Mark克利思来显示所有的备注,这样就行了。好,下边我们就遍历list,那遍历list怎么变利。怎么便利啊?
39:00
对,GSTL标签库啊,我们以前给大家说过,在GSP这个页面里边便利便利集合或者速度有两种方式,一个是什么用解query的Dollar符号点一尺函数,一个是用GSTL标签库的负一尺标签。那它俩有应用场景,对这个解块位的一次函数是变例是吗?就是便利GS变量。就不是作用域里边的数据,用它便利,在GS代码里边便利用它。这个主要是便利做用域里边的数据的啊,因为GSTL是结合EL表达式来使用的。所以他会许这个便利呢,要通过一二点二去,所以你要是使用它便利必须是数据在作用域里边。那我们这个数据大卡是不是正好在做东西里边呢?对查完之后放作用,所以用GSTR标志库。那监CR标志库我们已经引到页面里边,直接变历就行了,拿来变历,那直接来变历了C,然后呢,负一知道,然后呢这样就行,那我说在这个标签里边有这么几个关键属性,第一个第一特公司。
40:13
这个属性表示你这个负一值标间要变的是哪一个集合或者速度。我们说大家这个FO1是标志,不但能便利集合,还能便利数独,数独它也能便利,知道吧,那不管便利集合还是便利数独,你要便利哪一个集合,速度都要必须通过一表达式来获取。知道吧,那E表二获取作风里边数据,所以你变离之前必须把这个数据放作文,我们已经放了,就直接变成它,这样的话我们就可以了。下边它还有另一个属性叫V2这个属性,这个属性表示循环变量,循环变量什么意思?将来从这里边每取一个元素就放到这个变量里边,当然这个变量名你随便取,一般来讲见柄之意。在这个地方我们就随便起了,我就叫remark了,因为我这个例子每它里边每一个元素都是一个市场中备注的实例对象,所以我就叫拉克了,那么将来他从这里边每取一个市场活动备注的实体对象都会放到这里边。
41:13
放在这里边干什么?执行循环体,循环体里边干什么?每变出来一个,我要显示一个div,怎么显示div,就把这个div,这个JS,就是JSP的这个代码块放到标志体里边。每变了一次就执行一下它,那执行它它就显示一个备注了,那当然这个div里边数据肯定从每次取出来,这个备注里边取。那取的话,那大家看怎么取,首先第一个来看这是这个,这是每一条备注的这个图片,那这个图片我们说鼠标放入图片上头这个地方应该显示出来一个这一条备注创建者的名字,那这个备注的创建的怎么取?要从循环变量里边取,那如何从循环变量里边取对EL表达式?我们说GSTL标签是跟EL表达式结合使用的。
42:10
在这个标签体里边,只要获取的数据都从都够,都是通过EL表达式来获取,那我要获取这个循环体,这个循环变量里边的数据也是通过一二百二十获取。你们老师我没放到作用里边,你没放这个标签已经放了。所以我们必须通过一表示出去,那一表示去,那就是什么直接这个准八。对,然后呢,取它的什么创建者的名字,创建者名字怎么取可吧,这样的话,这个图片上鼠标一放,就把创建者的名字显示出来了啊好,下边再看还有哪些动态数据,这一行没有,下边来看这一行,这一行这个地方应该显示备注的内容。那备注内容也是从每次变出来这个备注里边去。
43:00
这个备注哪一个属性。对,就是就这个属性。这个字段对应那个属性,所以我们这个地方来直接取就行了,让他点叫not comp取属性啊,这是备注的属性,你知道吧。好,下边再看下边这一行,这一行我们说是显示什么,就是显示这一横内容。那首先这个地方是显示一个,说这条备注是属于哪一个市场活动的,把那市场活动名字显示,这个地方应该显示市场活动名字,这个市长的名字从哪取。对,从上而取,就是取得就是上面这个市场文民,对,就是其实就是它就是这个地方。它就是属于这个市场活动,所以我们这个地方直接取了啊,然后呢,这个地方直接取这市场文物知道。好,这样的话,大家这个地方我们就显示完了,下面来看这个时间。这个时间在哪来看这个时间在这个地方呢。
44:03
这个时间就在这个地方,我说这个时间有可能是创建时间,严究可能是修改时间,到底创建时间还是修改时间,那这个地方看他的修改标记是零还是一,如果是一就显示修改时间,否则显示创建时间,那这个这个地方的话,如何判断那个修改标记是一还是零,怎么判断是不是,看看那个艾的flag是零还是一啊,那判断怎么判断呢?那么等于等于零。对这个大家有这种,但根据我们来说这样,当你们这个页尔表是那个三步鱼那时以前以前用过吗。的,没用过就没用过是吧是吧,没用过话你应该这么想了,你怎么想,我要做判断了,我肯定得用什么GSTL标签库判断了,对CS来判断,那应该怎么办?应按理说应该这样。
45:01
你要没用过那个EL变老式的三个羽绒服。那你这样是吧,来用c if为什么用CF,因为CF就是在页面上面来处理业务逻辑的嘛,我们所说的业务要么是判断,要么是循环,循环我们用了,这个时候判断也是什么GSTL标签库帮我们解决的问题是吗?那这个时候他就这么判断,那判断怎么判断呢?对T这里边有个E的布尔表达式。那在这里边是一个什么,这里边应该是一个这个不尔对不玩表达式,对,那就是什么,看一看那个叫什么,remark.i flag等于一还是等于是吧,那你来看看吧,看看这条备注它的edit flag叫edit,然后呢,Flag flag对挡不等于什么。等不等于一是吧,等不等于一知道吗?如果等于一,那说明什么?有人修改过,有人修改过,那在这里边应该显示,对对吧,应该显示修改时间,那显示修改时间,那这个什么叫remark的修改时间I flag知道吗?
46:12
这时候我们要这样,然后还有大看,那如果不是,如果没有人修改,如果如果不等于一呢?是不是就写没有人修改过,就显示创建时间,那创建时间是不是再写一个,它没有L标签,你只能再写一遍,再写一遍这个地方,那就写一个什么条件取法叫什么,对,不等于一或者等于零也行,然后呢,这个地方那就显示是吧,创建时间,那没有没有说修改过,那就创建时间这样写就行了,这样写8万吗。麻烦你看,所以这麻烦麻烦的话,那我们就说这我们以前学过一个,按理说应该学过啊,你用过你但你没用过,那可能你忘了是。那叫三目云弧,对在对跟Java里边差不多,然后呢,ER表示这里边有个三目云南弧,其实耶尔表示是一种语言,你知道吗?你你别看这个Dollar符号打括号,你别看就这么简单,其实它是一门语言,它里边有好多语法。
47:13
它有种表达式语言,它里边定义很多表达式,它可以做加减乘除这些运算,它可以做一些什么逻辑判断等等这些,其中有个三步引导图,三步引导图跟价位里边类似,我这个方就来判断。Remark这次变来这个备注它的edit editlo edit,哎,Editlo,看看等不等于等不等于一,如果等等不等于一呢,加一个问号,这是三步运算数的这种语法,然后呢,再看那等不等于一呢?它它先执行这个表,如果等于一,后边又给你了两个表达式,对,如果等于一,如果是true,那这个地方是执行第一个表达式叫remark.editit还有号。
48:04
否则如果不等于一,那执行后边这个冒号隔开remark点叫correct啊,这时候我们这样这样写的话就比较简单了。将来他执行,到时候就得。但是大家一定要注意一表达式里边用到的这些变量,这些东西,这些变量这些东西一定是什么对作用于里边数据啊,一定作用,那你说老师你这个remark作用是作用里边数据吗?我这个remark是这个循环变量是作用是这个标签每每次变绿,这一个就放到作用玉里边了。那个K就叫准马克,你说老师放到四个作用就放到哪个作用了。对,当前页面那个,嗯,就是我们这最小的那个,最小的那个,这是他做这种标签的时候做出来。做标签的时候做的谁做的,JSP那帮开发商做的,你说老师我我自己写个标签可不可以也可以对你自己也可以写标签。
49:06
嗯。啊,你写标签,你说这个地方你做一个标签,你说别人一想你你你说一用你这个标,你可以输出任意那个。啊,怎么做的话,其实这也有语法,那咱们这咱们不目前来讲这个阶段咱们不学这么深是吧,那以后可能你是吧,做几年开发之后,你可能会自己写标签,写完之后让别人去用啊。好,当然我们不多说这些,好这样就行了,好大家这个时间呢,我们就想光了,下边还有一个这个创建者。这个创建者,我说这个地方要么显示创建者的名字,要么显示修改者名字,到底显示创建者还是修改者,还是判断。判断edit flag等不等于一,哎,来判断吧,这个地方继续来判断,然后呢,Dollar符号,那来判断一下,来这个地方,哎,来一个叫remark.editit flag等不等于一,如果等于一说明有人修改了,有人修改了那就显示叫remark点,叫editit版,否则那就显示remark点。
50:11
可瑞是显示创建者的人名,知道吧,这样的话,当然我们这个地方就可以了,这个时间这个人名也就也也显示完了,下边其实单场这个地方还有俩字呢。这俩字要么显示创建俩字,要么显示修改两字,表示如果说没有人修改过,就表示这条市场活同有这个人在这个时间创建两字,否则如果有人修改,我就表示这条备注是由这个人在这个时间修改的。这个地方显示修改两。那这后边到底显示创建俩字还是修改俩字,还是判断修改标记,如果说有人修改了,那就显示修改俩字,否则如果没有人修改,那就显示创建两次。那这个段我还得判断editlo,那怎么判断还是三姆?对来,继续来remark点叫editlo,等不等于一,如果等于一,显示创建俩字。
51:12
那显示创建俩字咋显示。直接写里,对直接这么写行吗?对直接这么写不行啊,为什么不行?那你分析一下,我们说他写的EL表达式里面的,我们以前给他讲E表达式给大家说过。E表达式里边只要遇到变量之类的这种这种东西的话。他都把它当做默认,当做什么作用,用里边的数据。你要如果直接显显示创建,这写上创建这俩字好了,ER表达式在执行的时候,他把它到作用里边去搜这俩字去。做微信里去搜那个放数据的时候,那个K是这俩字的那些数据,我们以前放这俩数据吗?没有没有,他怎么搜不到,搜不到啥也不给你显示,知道吗。
52:01
所以说大家我们要显示俩字,怎么别让它是变量干什么让它去常量,怎么是常量字加上什么引号就是字符串,常量就显示这个字符串,知道吧。这事我们说到这,那如果是什么不是一,那就想示修改俩字,同样也是放到引号里边这个地方显示修改,这样的话,大家看我们这个地方,这俩字也相当了。好,下边还剩最后这俩图标了。那我们来看看这俩图标,这俩图标大概在哪呢?这俩图标刚才分析分析了在这个div里边。这俩图标就是两个A标签。做出来的效果,用CSS修饰出来的效果。
我来说两句