00:02
我们上节课呢,主要是做一个文件的上传啊,就是核准件的一个保存,嗯,好了,咱们这个模块要做完了吗。这个模块啊,再看一下。嗯。首先呢,点查询分页查询放到这点确定过来,这是两个功能了,然后呢,点那个保存,点那个确定又是一个功能是吧,所以这边呢,咱们这个这块的核准件的一个管理就做完了,接下来咱们扩展一个东西啊,我们来扩展一下,今天主要是讲这个啊。嗯,第一节课呢,咱们就是个序啊,往下的话咱们。
01:02
咱们说一下这个啊,GSTL和EL表达式。还有自定义函数库。咱们今天主要是讲这个东西,以后呢,咱们在尽量在JSP里边啊,呃,尽量不要编写Java程序了啊。尽量用这个表达式和这个标签啊,还用函数来代替,所以呢,咱们重点来说一下这个好,这个要函数啊,其实也可以放到咱们前五天去讲明白吧,嗯,前五天还记得吧,咱们前五天主要讲什么light加JSP啊,今天要讲那个东西是属于哪个范畴的呀,属于JSP范围的。呃,Cid中的语法一个是E,一个是JSTL啊,还有一个是嗯,函数库啊,把这个讲一下。好了,那这样的话,咱们跟那个项目好像就没有什么关系了啊,咱们把这个项目复制一下,我就在这个项目里面讲得了啊。复制接过来,然后呢,咱们给它改成39啊,差不多了吧,再来十几个啊。
02:08
就这差不多完了啊。来咱们这个路径呢,还是拿一下吧。把它复制一下好嘞。咱们呢,把它部署了,添加添加走走接过来,项目完了后边东西还多呢啊设计模式什么很多呢。来咱们这边呢,先给它关了这个打开39啊,主要呢讲基础知识点,基础知识点和项目无关。我们讲一下基础啊,知识点属于JSP中的基础语法。和项母无关啊,和E就为项无关,主要是讲一讲,咱们用一下啊,首先第一个呢,我们讲E啊,然后再讲GSTL。
03:06
GTL包括什么呢?GSTL的,呃,核心标签库啊,核心标库还有什么?呃,函数库啊,内置函数库。内置函数库。FN啊,核心标签库C。主要是这个啊。呃,其实呢,我们JSP呢,其实是有一个缺点啊,JSP中编写大量的Java代码。会导致什么呢?GP的维护会导致GP很难维护啊,很难维护。所以呢,呃,在这个推出了啊,推出了很多新语法啊,新语法代替什么呢?JSP中的Java代码,使编程变得更加容易啊,使编程更加容易增增强啊维护性增强维护性,增强可维护性。
04:25
其中比较有代表的,有代表性的EL表达式函数库,标签库等啊。好了,那这样的话,咱们就这样吧,嗯。在这个39版本啊,在这个web下面呢,我就建一个文件夹啊,这个文件夹呢,我就给它起名叫吧,嗯,行吧。然后呢,我今天呢,主要是讲这个文件夹啊,其他地方我不动啊,所以你下来就看这个就行了,然后在这里边我准备建三个文件,其中一个文件呢,叫EL test。
05:13
test.gd然后呢,我再建一个文件啊,这个文件呢,我主要是讲一讲JS TL test。然后呢,我再讲一个啊,就是关于function pass好,今天呢,算是才刚刚开始啊,其实呢,第一节课那个东西想一想昨天是不是讲过了。啊,所以咱们今天主要是新内容啊,讲一下这个三个东西,EL加表格function,好咱们来看看。这个我先关了吧,这个我先关了啊,我先讲那个E。啊,先讲EL,好这种语法呢,大家以后要要用它啊,经常用这种语法了,好一起看一看,首先咱们接呢,先把这个加上去吧,啊来a page是吧,Content type或者是page including写上都可以啊,写上GB18030写上就行了,接下来呢,嗯。
06:09
看一看啊,首先不行写个注释得了啊,写个注释好了,这边呢,我写上啊EEL表达式啊。主要的作用是。从。某个范围对象中读取数据啊,并且将读取到的数据输出到浏览器上,这就是E式的最主要作用。来来,先把这句话读一读啊。
07:15
这个其实是吧,其实不使用啊EL表达式啊,嗯,使用什么呢?纯Java吧,使用纯Java代码也能完成吧,啊也能完成啊。也能完成取数据和什么输出数据吧啊,取数据和输出数据嗯,为了减少JSP中的Java代码量啊,Java代码量所以才使用EL表达式,主要作用呢,我说一下啊。它主要是从某范围中读取数据,并且将读取到的数据输到浏览器上。
08:01
那这是核心啊,啊好,EL呢是什么呢?是这个啊叫expression language啊这个。表达式语言。来。EL表达式语法啊,是散制定的规范啊,散制定的规范为减少什么,为减少GST中加码代码量的努力啊。聊这吧,要表达式语法是暂定的规范啊。是为减为为减少这些加码代码量做出的吧,做出的努力啊,其中呢,它是一项的,嗯,来第二个呢,我来说一下啊,EL表达式的基础语法啊,是美元符号啊,说白就是给点钱啊。
09:01
给点钱它就能显示了,是这意思,大括号开大括号,就是这里面必须个表达式啊,表达式不能为空啊,必须填写,如果空则到错啊,则无法编译通过,则无法编译通过啊。一要表达式,基础语法是这样,美元啊,Dollar,然后表达式就行了,它的表达式呢,不能为空啊,就必须填写的好第三个。一你要理解的是表达式最主要作用啊,二呢,你要理解表达式的基础语法是这样的,三呢,我来说一下啊。三我先这样吧,啊,我们先来回顾一下啊,回顾。
10:00
JSP中的四个。范围内置对象还记得吗?谁呀?Take是request application。是这样吗?诶。那这样吧,是关于啊,关于范围对象四个是吧,四个范围下,然后呢,JSP中的内置对象的什么名字吧,内置对象的名称我给大家写到这,然后我画一个横线啊往后画,然后呢,我再来说一下它的对应的加完整什么类零还记得吗?这个是谁。加X的gsd点。
11:03
加page contact是吧?这个呢,加X serve HT htp s request来继续将X serve叫STP叫STP,什么S,这个是加SS叫s contact。是吧,好继续啊,现在我推出EL表达式的内置对象啊,EL表达式的隐含对象啊,其实我们也叫EL的内置对象,所以呢,范围这个名字叫什么,我写了啊,叫page scope啊,Request scope。Scope。Application school。这是需要你记得啊。这前八个是这这你都学过吧,这个啊这个是是新语法啊,是EL表达式,你含的我说了A表示最主要作用,从某个范围对象中读取数据,你现在不得学学范围对象吗。
12:12
那你范围对象,你知道JSP有四个内置的配置,Content request session application吗?现在你这个东西映射到EL表达式里边,这个page contact就对应谁page scope request对谁request scope second对谁second scopelic对LIC scope,其实你要记也好记,就是你以前的内置对象后面加个单词叫什么scope,但是有一个区别啊,这个不一样。这个人家叫page contact到这就变成啥了,叫page scope了。明白吧,其实我也可以再回顾一下GFT9跟这个对象,我可以先回顾一下吧,来回顾吧,这个是回顾啊,这回顾JSP的九大内置对象分别是谁来着?Page context request session application是吧,Response exception。
13:09
配置吧,还不配置。是吧,这个这个这个啊,这是主观电项吗。全了吧?反正也是回复啊,来既对内是对象名称啊,我再回顾一下啊,这个大家是否有印象啊,这个都不能忘啊,到时候有可能面试会问你来我不妨再把这个叫什么?呃,这个完整类名啊,完整加va类名再写一下吧,这这这这个我就复制了啊来这个复制放过来,贴过来,来继续这个复制放过来,贴过来,这个再复制一下放到这贴过来,这边复制一下放到这,咱们贴过来,这个都不能吧,这边是谁啊。
14:00
是,是不是就是那个什么HTTP,什么HTP,什么so that,什么response,吧,这个是谁啊?加上s so that.jsp叫JSP writer吧,是吧,这个谁啊,Java long加什么throwable吧?嗯,这个谁呀,这就是this意思啊,这个是谁啊?加va X s叫s con。啊,还记得吧,就这东西吗。上面是咱们EL表达式的隐含对象,Page scope requestcope,这是什么?这这这这什么范围,这个这叫页面上下文啊,页面范围吧,啊,页面范围,这个是什么范围啊,请求范围,它属于什么范围啊,绘什么绘什么绘画范围是吧?这这这什么范围啊,这叫应用范围。明白吧,它的范围是是page context小于什么?Request小于什么session小于啊,Application吧,配J的啊,JJ中的什么ELLJ中的EL啊,表达式的来往后啊,这是什么?Scope小于什么request scope小于什么session scope啊,小什么呀,A vacation s stop,这样能理解我意思吧。
15:46
我们的使用原则啊,原则我就不说了啊,就从小到大依次使用就行了,来再总结一下啊,Eel表达式的作用是从某个范围对象中读取数据,读取到数据之后呢,把它输到浏览器上,二一表达式的基础语法是到了大框里面跟表达式。
16:06
啊,然后呢,要注意啊,关于咱们的四个范围内的对象,你把这四个记住就行了啊,然后呢,九大类对象,其实这都是回顾了啊,不是什么新内容啊,你看一看高了,嗯,发错了吧。不能这么写啊,报错了。出错出错了吗?嗯,这边写上error了啊,表达式不能为错,这错表达式不能什么没错,嗯,刚发错了。好,继续往下我说一下啊,这个EL表达式的所有知识点呢,我都给你写到这个GP里边,下一周你看这个GP挨着往下看,就就相当于是你回顾了啊好了,咱们接下来看一下。我在这呢,写上一个,呃,写上一段Java代码啊,这段Java代码是这样的,我调了一下这个request set attribute,好。
17:08
我存一个数据往里边。我存一个啥呢。我存的是内蒙张三,放进去行吧。来使用Java程序,把它这个范围里边存的这个数据取出来,打到浏览器上怎么写。这个是啊,使用Java代码向什么request范围中存储什么数据啊,存储数据。Name等于name是username value是张三,接下来呢,使用啊还是使用Java代码。从request范围中读取数据并且输出到浏览器上,这个你要是Java代码怎么写?JA块版等号request get attribute,是不是直接写上叫user name就行了,是这样吗?
18:19
是这样写的哈,来,咱们测一下。好了点走重新部署,OK,把服务器启动好了,启动之后打开,打开之后咱们先清空一下吧,这个啊好,这个打开之后大家想一想,能访问我们直接在这访问行了。Z-EL-test.c是不是不行啊,是不是跳到登录界面了,所以你先登录啊。登录之后有30分钟才可以啊,CD是这个吧,回车能不能取出来。是不是可以取出来存进去,你说我取出来输到浏览器上吗?好,大家看EL表达式怎么写啊,使用EL表达式从request范围中读取数据,并且输入到浏览器上。
19:10
到了大快快大快结束。就这啊。哪个范围,这是。Request。Co点。Your name。刷新。我说一下啊,其实这个就是这段加码代码。啊,变成这种写法了。怎么能让EL表达式失效?
20:01
在这加一个ignored。是否?这叫什么?忽略第二表达式。True表示忽略,明白吧,这样的话它就不是一二表示,它就是个普通文本了。明白吧,所以我说一下啊,这个一般写吗?这个一般不写它的缺省值是什么?False啊,False表示不忽略吧,这是不忽略。以前有同学给我出了个难题,他说在同一个JSP里边。有一部分是。想忽略。有一部分他不想忽略。你看我这改成to是不是都就都都就忽略了啊,我改成false是是不是都就不忽略了,他他非得给我出个难题。他说,有一部分我想忽略,有一部分不想忽略。
21:00
怎么办呀?也行啊,现在是不是都不忽略啊,False啊。这边呢,我把它复制一下贴过来加个杠。Trying。做到了吗?所以加个杠就行了。加杠的话,它就是它就不是一二表达式了。明白吧?细力度控制啊。以下。EL失效明白吧,啊,这个EL失效,来这边我写上这个属性了啊。五。呃,在配置指令中啊,有一个属性叫。
22:05
Is not,该属性表示是否忽略EL表达式啊?该属性的值是true表示忽略,EL表达式for表示不忽略。缺省值是false,所以一般单属性不需要编写。明白吧,除非想忽略啊,除非想忽略什么呢。EL表达式啊,才会编写此属性。啊,错误表示不忽略啊。呃处表示忽略啊。
23:00
South表示不忽略啊。是吧,False是不忽略啊,行了,那这个知道就行了,咱们再刷一下吧,刷一下好了你看。大家也没觉得这个。好在哪是吧,来看看啊。还是从request还是使用Java代码?从request里面取数据放到浏览器上,我这么写,Request get attribute取一个。叉叉,取一个这个user code吧,好,那我问你这个值是输出什么什么值。我加个横线吧,嗯。我往里面存了吗。我从一个nameme取出来吧,是不是取出来呀啊,我往里边存一个your code的,没有存啊,我是从request范围里边是不是取1CODE的呀,是不是none啊,这肯定是none啊,是不是none来你再看这个。
24:10
使用ER表达式啊,从三读取数据到了吧怎么写?Sorry requestco吧,直接把后面改成什么就行了,约吧,好接过来来我刷一下啊,中间中间的话我就。我加个什么呢合适呢,我加个顿号,我加个顿号分个讲行吧,顿号左边和顿号的右边不一样啊。来,我刷。是吧,嗯,所以呢,这个代码呢,和这个代码其实并不一样。这是使用从request范围中读取数据,并且输入到浏览器上,Request中没有存储该数据吧,这个也是一样啊,对快中没有存储该数据,它俩结果有区别吗?它输出什么?输出到浏览器上一个那字符串。
25:19
这个呢,输出到浏览器上的是一个空字符串,这个什么也没有,看不见。明白吧,来刷新啊,你看。所以严格意义上讲呢,谁跟谁一样啊。实际上啊,严格意义上讲,严格啊意义上讲,EL表达式和这样的Java代码是相同的。来看好了,我把这个复制一下,明白吧,干什么贴过来等于等于none怎么办?空其他情况怎么办呀?取出来你似乎觉得这个代码很眼熟啊,Seven request,什么SCO点什么code。
26:19
实际上这个代码等于上面那个代码。这俩才是一样的。明白我意思吧。就是说实际上这个代码和这个代码并不一样啊。实际上这个代码和这个代码是一样的啊。等于空就输出空块吧,其他情况我就输出这个值,所以现在看这俩是不是就一样了,刷俩空白。是不是俩空白啊,我看出来效果这样啊,我换个行行吗?在这儿。或者我加一个HR吧。我再我再刷一下啊,再刷一下,你看下边没东西吗?或者你看不清楚,我再加个顿号吧,加顿号来我再我再来,我再来看看刷新一下,你看光有顿号,顿号左边跟右边没东西。
27:12
能理解我的意思吧,行,那就继续了啊,继续。来。Request school可以省略,这个消息应该是更好的啊,到了you nameme,行了。是吧?是吧?这不更好吗?嗯,以后你看就写这个就行了。这能省吗?省了。是吧,那直接写他了。
28:05
来有问题出现了吗?我这个位置也存的是date,但是这个对象是什么,这是什么。Sentence是什么呀?Application的application啊,好,来application这边我存上数据啊,这是page置date,这是什么request date,这是什么session date这是什么application date吧,Application啊,Date好,现在如果使用一二的是Dollar直接date,会不会出问题?你的比较保守的写法是怎么写pageco点是吧?这边改成什么request SCO,这干什么呀?Section scope吧,这干什么呀?叫a vacation scope是吧?这样多好啊。
29:16
行。这个request scope可以省略的啊,是这样,这这边我再加一个横线,然后再刷新一下,看这四个数据能不能取出来,Page request session和application可以取出来吧,没问题,但是你说在这加一个Dollar,直接前面加一个date,省了你说跟上想跟上面也一样,想轻轻松松的写,不想写这个这个这个这个了,你直接写个这个,你看是谁。配。是吧,我把配置干什么呀,干掉。Requirement。我把request干掉。Fashion是吧?我把三神干掉,你觉得你能干掉三神吗?
30:03
你虽然住掉了,但是浏览器里面有session吗?有啊,来刷新是不是还是session啊。除非关了浏览器吧,啊,再重新再打开,你这个代码是不是没了,是不是来这个代码了,来打开啊。来先登登录吧,先啊,登录完之后点,点完之后你看。所以说从这可以得出个结论啊,如果前面没有加范围的话,它会从最小范围中获取。如果相同的name的话,明白我的意思吧,来,这边放开来,注意啊,这边写上如果啊,如果,呃,EL内置对象内置范围对象省略的话。省略的话,恰巧什么。恰巧啊。存储在范围中的。
31:01
Name。存储在范围中范围存储在范围中的数据的name是什么?相同的啊,此时EL表达式会从什么最小范围中获取?数据。谁的优先级比较高啊?小范围优先级较高啊,小范围优先级较高,这个大家知道,我说一下啊,你为什么非得给自己找个痛快,非得写个名字一样。你在编程过程中,你这个名字是不是最好不要一样?那你写这种代码是不是就可以了。是吧,那你非得非得起起起起个一样的,但是我们这种情况啊,就是说什么呢?就是说大家无意之间啊,发现你往这个里边存了一个数据,叫这个名,完了之后一不小心的往这个范围里边也存了这么一个数据,也叫这个名错了吧,这个时候他又从小范围里面取了,不从这个范围里面取了,所以那个时候我推荐你啊,还是加上什么这个。
32:07
你只要把前面这个范围的名称加上去,它是不是就定位了。可能这个还是比较简单的啊,比较简单。好,大家总结一下吧,这都讲了什么东西啊?12EL表达式是从某个范围中读取数据。并且将这个数据呢输入到浏览器上。二一表达是基础语法是这样的。三呢,是关于咱们的范围内的对象啊,这四个。这个名字要注意,接下来就是上代码了啊,这个e ignore这个属性我简单提了提,这个可以不写啊。不写的话就是false,再往下啊,大家看,首先第一个呢,我是往范围里面存那个数据,然后从Java程序中取出来,输出到浏览器上,然后呢,使用ER表是从这个request范围中读取出,是这样读的,所以这个代码呢,代替的是这个代码。然后呢,我加个杠是啥意思啊,加个杠就表示这个呢,就给它失效了啊,然后我们往下再看,我从这这块里面取这个数据,但是这个数据没有存过,但是它反问的是什么,那那requestco叫点u.code它取的值就是什么空框是吧?所以推出一个结论,严格意义上讲这个呢,应该是等于上面这个啊,这两个应该是相同的,这俩其实并不一样。
33:24
明白我意思吧,啊,这俩不一样的啊,这俩是一样的。所以它有空值处理,它它有空值处理啊,这个Java程序是没有空值处理的,所以这个代码和这个代码是相同的,再往下的话,我告诉你一个好消息嘛,是吧,就这个消息嘛,是吧,那个范围可以不写什么四个内置对象我就不写,你四个内置对象我就直接写这个名字是吧,可以没问题,但是呢,又引出了一个矛盾点啊,就是万一你在这四个范围里面存储的数据的name是什么相同的,那这个时候你要写个date,那就有麻烦了,所以呢,我们还是有必要什么记一下这四个内置对象的什么名称。
34:03
明白我的意思吧,啊,记一下吧,行吧,从最小范围中过去,接下来我就继续往下了啊,继续往下讲。往下讲讲啥呢?这个东西还是比较多的啊,咱们先看这么这么一个知识点嘛,最起码咱们还没有往这个里边存过一个我们自定义的对象,我们现在往这个范围里面存储的这个对象啊,它毕竟是一个字符串。是吧,接下来我给个B。来打开打开。In,这个包在哪呢?这呢吧,来这边我写一个类吧,啊这个类呢,我就叫就叫EB吧,员工吧,啊员工。来和EGOA项目无关啊,这个和EGOA项目无关,和EGOA。项目无关啊。EL表达式中使用的。
35:01
E表达式学呃学习吧,嗯,学习EL表达式中使用的加小B啊,我先把这个事说明啊,别到时候你们你一下面没有员工啊是吧,行了,咱们这边呢,就给点东西啊,比如说像e p number呀,嗯,再来一个1NAME行了,这就这么着吧啊加一个什么S盖的方法行了,加上OK,你看这就完了,这个B就写完了,接下来呢,我是这么做啊,向request的范围中存储一个。自定义的emp对象,所以这个时候加法同学怎么写EPE1吧,你有一个什么emp吧,或直接E得了啊E那打包啊打包啊打包倒过来,那么E呢,去调赛的方法。是吧,然后呢,Set什么呢?E number,比如说111,然后呢,我们就叫in set name啊,这个人呢,叫就就就就叫史密斯吧,行吧,那这个员工就创建完了,创建完员工对象之后,一定要将员工对象存储到request范围中,因为我们说过EL表达式其实最主要作用就是从某个范围中读取数据,所以现在你应该调用request site attribute存一个什么。
36:28
EP or de,逗号E行吧,好,现在大家呢,使用EL表达式把这个对象给我取出来,怎么取?使用EL表达式啊,还是使用EL表达式从request范围中读取BMP对象输出到浏览器上,注意我没有让你输出这个里边的属性啊,我让你输出的是这个对象怎么写高了谁呀?
37:03
哎,好啊,来,接过来放这儿是不是可以了。这个就是他吧。不用写这个了啊,这删了就行了,另外其实你最好啊,把这个名也写成E吧,那这样的话,这就写成什么就行了,E就行了。嗯,简单吧,取出来,但是呢,我啊,还是别这么讲啊,因为我担心一件事啊。知道我担心啥吗?我担心呢,我要这么讲的话,你会认为这个E是这个E啊,跟他没关系。所以说我故意把这个名呢起的长一些,我把这个名放到这行吗?接下来我就刷了啊。刷。有对象吗?有?哎,你看你只要存进去这个E,我是不是就可以把它取出来呀,取出来之后这个E2表示是具备输出功能吗。
38:05
哎,我大家呢,大胆的尝试一下啊,你蒙一下或者猜一下吧。取这个怎么取?没事,猜错了,没关系,你又没谁呀,E Bob点。你现在塞得上去了,我要掉底层的盖的方法嘛,是吧,所以这个时候点谁呀。来刷一下。是吧,来。再来一个很好用啊,一什么number吧。刷一下行吧,诶。好了,现在我们一起研究一下啊,Emp obb勾点p number,而这个EP number到底是谁?EP number到底是这个e number呢?还是这个盖的方法呢?
39:11
试试啊,我把它改成A。但是这个方法没有,方法名变了吗?没有吧?要按说这应该是E点什么。A,是吧,嗯。但是我还写成两本啊,看能不能取出来。这边呢,我刷一下。然后呢,我点一下。登录啊,来点一下。能不能取出来往下看?是吧,啊叫什么。
40:02
我都变成啥了?A了吧,点开,哎,能不能取出来。刷一下。放错了。来往上找,你看人家报了一个错啊,应该是很简单的。他说,Property not found。A not found ion什么type?他说在emp这个类里边找一个属性叫A,这个属性有吗?你知道人家正规的叫法其实不把它叫属性,你知道吧,它其实并不是属性,它严格意义上叫字段fail,谁是真正的属性啊?Get方法的方法名,去掉盖的关键字,把第一个字,把第一个字母小写,这就是属性名。严格意义上讲是这么说的。明白吧,所以我希望大家能够记住啊,点后边这个东西到底是谁,是get e number,去掉get,把E小写。
41:07
明白吗?这个东西它并不是。属性的名字啊,你是四月的,我怎么访问你呀?是吧,它一定是通过钙的方法吊的吧,你吊钙的方法,你怎么拿到钙的方法呢?你想底层有没有用反射。他是不是能拿到这个名,拿到这个名是不是在前面加了get的,后来把E变成大写了,他是不是通过反射机制去掉的这个方法呀,所以你看它底层实际上访问的并不是你这个。这个东西。他访问的实际上是这个方法。所以这个呢,我还是提醒一下,但是我说一下啊,这个这个没必要这么写吧。咱们一般情况下就买一个粒子开发,谁都知道这种东西,你写上之后S钙的方法都是生成的吧。所以这个自然就是一样的了啊好,那么这边我写上啊,这个到底底层掉的是什么,这个很重要啊,这是重点。
42:03
底层啊,底层实际上调用了Java b对象的这个方法,Get in number方法。明白吧,好,下面也是一样,这个实际上调用的是get念什么name方法啊,这个方法这个方法。所以只要保证什么,保证有这个方法就行,对吧,有这个方法其实是这样的啊。所以这点呢,你得注意了,咱们再听一下子,听完之后咱们再来刷一下啊,来刷你看行了吧。是不是是不是没问题啊。来我这我这我我这这么写啊叫e po obb勾点A报报错报错啊报错了。
43:01
没有这个属性,所以这个呢,我就注掉了啊,也别住了,杠吧行吧,加杠吧行吧,加杠啊来刷。再一个。是吧,这是错误的。我给他废了啊,三个杠给它废掉。这不行啊,这倒错倒错啊,什么原因啊,没有哪个方法没有get a方法明白吗?没有get方法。但是这样。好了,这是一个重点。好,接下来我再讲一个啊,再来看一看,看一个什么呢?看一下咱们的EL表达式的另一个隐含对象啊,或者叫那个对象,这个那个对象叫什么呢?叫parent。
44:19
啊,来试试啊,Request它有很多方法,比如说set attribute是干什么的?存吧,Get tribute呢?取吧,那还有get parater方法吧,还还记得吗?这个get parater是取什么呢?取那个表单上提交的数据吧,所以这我写个username啊,呃,You you user nameme吧,就写个username得了啊好了,大家一起来看一看这个能不能拿到。Request get permitter了yourname,那既然呢,这是从request里面取这个数据,取到之后呢,用等号的方式输出吧,所以这个时候你想一想,这要写的话应该加一个什么问号吧,写一个username等于什么张三吧。
45:05
你只要问号加上去,后边写上u name等于张三五幺只要敲回车,回车完之后你想一想这个底层执行这个JB的时候快掉get卡米能不能把这个数据取出来,等号能不能输出可以来回车啊。有没有,我这写李四,他就是李四吧。啊,是吧。随便再写一个老五。是不是有啊,有吧,有啊。哎,但是呢,你看好了啊。这边呢,我能不能把它变成EL表达式的写法。到了。怎么做?点。标的那行了啊,大家已经入门了啊来。看看啊,刷一下两个网五的两个,前边一个后边一个,但是后边的功能远远比这个功能强大多试试啊。
46:10
我我加个顿号吧,行吗?我加个顿号区别一下啊来刷新。前边的和后边的看清楚啊,变了。这次我没有提供name,我提供了username user AAA。那这样的话会导致我们底层request get反问的支持不当啊。那么这个返回now和这个有什么区别呢?顿号前面是none,顿号右边什么也没有是吧?所以说这句话和这话其实并不一样啊,这句话跟哪句话一样?和这块长的一模一样啊,问号啊,等于等于那是吧,问号嗯。
47:03
谁呀?是这个吧,嗯,拿过来放到这啊,这个其实和这个啊,它们是相同的。能理解吧,好看后边这俩啊,哎,我刷了啊刷后边俩一样吗?一样。所以是这样的。所以这个是带的这一堆啊。这个P是个隐含对象啊,所以这是第几个隐含对象啊,第五个啊,上面有四个范围对吧,这是一个第五个。好了,大家觉得这个代码以前在哪写过?分页查询。来改了啊。这个是依旧卫校那边的。哪个页面org codel。
48:06
是吧,这是哪个呀,这是。啊。登录啊,看好了。是不是是不是这个分页查询四个框一二三四点完查询之后,我还记得这边如果比如写个动力,这个动力是不是还得在啊,这个动力还得在吧,动力是不是不能消失。那这样的话,你想一想,这边不就是这四个东西吗?把它改了吧,啊高了啊高了。点over扣完了。来。他在不在控制处理啊,在啊点什么cn name。开始日期。
49:01
高的点什么start。是吧,好这边变了,变了之后再来测一下啊。点查询,点查询这边写上动力,再点查询啊没事。嗯。这样的是吧,所以这边呢,咱们以后就要用了。啊,讲的东西你要记住了啊,Per那个对象。好,咱们继续啊,接下来我们一二表示从数组中取出去试试啊。
50:07
哎,大家有没有感觉一表达式有一个规律,这个规律我还是写一下吧,规律啊。EL表达式统一啊,统一都有一个特点,什么特点没有取到任何数据则输出什么空字符串,这是它的特色啊。ER表示统一都有一个特点,没有起到任何数据则输出空字符串,统一都对什么,都对空值进行了预处理,明白吧,进行了。对空值啊,呃,进行了预先处理啊,预处理吧,进行预处理,这个你得知道啊,这是它的特色了,你想一想啊,一点表达式最主要功能是输出到浏览器上,对吧,你打到浏览器上一个,那又算啥呀。
51:08
是吧,他肯定不会打个那出去,你就是啥也没有,他就是啥也不输出。是这意思吧,嗯,啥也不说,所以它是干这个的啊,来,再往下看一看EL表达式,从数组中取数据,比如说我在这有一个数组。嗯,二位嘛,ABC d f f fkkk,好,接下来呢,这个你想一想,E能直接取吗?不能啊,可以干什么呀,Request set什么attribute吧,啊,得存一个什么呀。数组吧,啊,得存一个啊数组。
52:02
哟,错了这个变量啊,这边咱们去掉它,去掉它怎么怎怎么写这个,你觉得怎么怎么写一二表达式怎么拿猜一下。怎么从数组中取数据,首先你肯定得拿它嘛,想拿它,你想拿完它之后,你刷新去,它肯定是个数组吧。它肯定是个数组啊,来我们试试吧。点这个。是不是个数组啊来,你想取数组第一个元素怎么取行了啊怎么取。啊,中括号零。中号一。二三行吧,刷新。能取出来来,再上去,越界了吧,越界了来刷新。没事。
53:01
没事儿是吧,没事儿啊,没事儿吗。所以要注意啊,EL表达式,从数组中取数据的时候,如果数组下标越界,不会出现越界异常,有预处理,明白吧,来这边写上啊EL表达式。从数组中取数据的时候,取数据的时候啊,嗯,如果越界了与如果下标越界了啊,越界了不会出现异常。不会出现异常。不是说过一句话吗,取不到就是空字串,它是不是取不到啊,取不到就是空串啊,就永远是这个规律就行了,来,那有没有一种情况,就是数组里面存的这个数据。示意的加法对象。
54:04
是吧,来这边咱们试一下啊。嗯。EP行了EP,嗯,大括号。嗯,要一个P。不行,这个咱们E1吧,E213行不行,11213啊呃,E11又一个EP吧,这边呢,我把一一啊去调一个方法啊啊点S222啊,然后E1呢去调S1NAME定吧,啊随便写一个我也不用多写了啊,我写俩是不是就够了是吧?112啊1212。行了,这边呢,改成333啊,333福特吧,这边改一改啊三六行了,那是不是快比set什么,呃,S把谁啊,叫em array是吧,叫emrray是不是存进去啊,接下来啊叫瑞中括号0.epnumber。
55:30
行不行可以,哎,我下面还用举例子吗。其实说白了啊,就是说你这个代表啥。代表数组的首元素第一。你一一都有了,你要取这个E,是这么写吗?那我还是写写吧,看大家好像有疑惑呀,这写成什么吧?那复制一下贴过来就可以了。把它改成什么一。
56:03
都出来了。E表示就干这个了。行,这样大家先休息,下节课咱们继续。
我来说两句