00:00
啊啊,那接下来我们还是接着我们刚才的这个啊功能来去说啊啊,那么现在呢,我们已经能完成这样的功能,就是当你登录失败以后呢,我再回到我的登录页面,并且呢,把这个错误信息呢给你呈现出来啊那么这个是怎么做的呢?我们通过一个转发的技术,再加上一个JSP这样的一个技术啊,虽然说现在我们把这个功能实现了,但是呢,我们现在的这个版本呢,还不是特别好,我们来分析分析啊,有什么不好的地方呢?就是我们在这个JSP页面中呢,我们写了一些Java代码,对吧,虽然说人家GSP呢,就是支持你去写这个Java代码的,但是呢,我们在实际的开发中呢,我们还是希望把Java代码呢,能写到里面就写到里面,而在这个JSP中呢,我们尽量的就是能不出现Java代码,我就不出现Java代码。
01:01
就是专门就是把业务呢交给so来去处理,而把我们的这个数据显示呢,交给这个gfp来处理,但是现在我们遇到的一个问题就是什么呀?我在显示这个数据的时候,因为我得做一些判断,因此呢我就不得已出现了一些什么Java代码,明白了吧,那么现在呢,我们主要就是来去解决这个问题的,那么其实我们在这个JC中去显示数据的时候,我们可以借助于一个表达式来去做,明白吧,什么表达式呢?我们来看它叫做EL表达式啊,它是GSP内置的一个表达式语言,那你看又是一个内置的,也就代表着我们是可以啊直接去使用的,用于访问页面的上下文,以及不同作用域中的什么对象,好取得对象的属性的值,或者说执行一些简单的运算,执行一些简单的什么判断操作,它都是可以的啊,那么。
02:01
它的这个基本语法呢,就是什么呀?哎,一个Dollar,然后呢,一个大括号,这就是它的一个什么基本的语法,那么它主要呢,就是来代替JSC页面中的一个什么间括号,百分号等号这个问题的啊,就主要是把这个代码给你替换掉了,通过我们的一二表达式啊,那么大家来看它的这个基本语法呢,我们也知道了,就是dota大括号,这个大家一定要记住了啊,以后我们会每每天都会去使用它,那么比方说呃,我们要去用它去取这个数据了,那你看人家说到的是上下文,就页面的上下文,或者说不同作用域种的一些对象,那么现在我们说的是页面的上下,我们刚才已经说过了,它叫做配置contact吧,对吧,就是我们刚才在说这个九大面积对象的时候说到的它,它是一个页面的上下文,那么它也是一个预对象,除了它之外呢,我们还有几个预对象来注意。
03:01
就是我们的request这个域,我们的session这个域,还有一个叫做application这个域,能明白吧,这个page scope,它代表的就是我当前的页面上下文,而这个request scope代表的是我们当前请求的,而这个session呢,它其实代表的是一个绘画啊,这个是我们后面要去说的这个application呢,它就特别大了,它代表了整个web应用的一个上下文了,就特别特别大的,所以说呢,大家要记住的就是我们的EL呢,要从这四个域对象中取数据。那么你在取的时候呢,你可以指定它从哪个域取啊,或者说你也可以不指定,那么如果你不指定的情况下,它默认会从这四个预对象中挨个去找,怎么找法呢?从小到大来找,先从配置科找,如果找不着,再往下面去找,一直到它找着为止,那么假如说四个里面我都找不着了,那就确实是找不着了,能明白这个意思了吧?OK,所以大家记住就是什么呀?首先EL表达式它是JSP的一个内置的表达式语言,我们直接可以去使用它专门来负责取值,做一些判断,做一些简单的运算,然后取值的时候,它会从四个预对象里面去取,分别是我们的page置scope request scope session scope,以及我们的application scope,这些这些东西呢,大家也需要把它记住啊,那么具体这里面我们没有有没有讲。
04:38
到了这两个东西呢,我们再往后会给大家讲到说出了,大家先等一等,现在的话呢,我们讲它还不还不到时候明白了吧,好,那么接下来呢,我们就来用这个一二百达式呢,来去解决一下我们刚刚的这个问题,你看一下。我写的这部分代码呢,其实我不想让它出现到我的GSP页面里面啊,因为这样的话呢,就是感觉上也是一个耦合的东西啊,就是把这个Java代码呢,跟你的这个HTL的相关东西呢,都写到一起了,我们还是不希望出现这样的这个呃编码方式的,所以说呢,我们就希望通过EL表达式呢,把这部分代码给它替换掉,能明白了吧?OK,怎么替换呢?那么首先这部分代码呢,我就不再往这写了啊,那我要把它注释掉了,呃,这个怎么怎么注释呢?监括号百分号这个啊,通过它来注释,明白了吧,因为你的这个这种注释的话呢,只能注释我们的这个HTML相关的东西,而这种注释的话呢,还可以把这个Java代码给你注释掉啊,所以说我整个呢,把它剪切一下,整个是不是都给它注释掉了。
05:45
看到了吗?哎,就是我刚刚写过的这个东西呢,我都给你注释掉了,那么我现在要想取值的话呢,我就直接在我的这个A部的后面呢,我就加上一个这个SPA就可以了,然后这个SPA里面呢,我们写什么呀,这个地方我是不是想把那个logging message里面的值给它取出来呀,对吧?而我们刚刚已经把这个数据是不是绑定到我们的这个request里面了,是吧?所以说呢,我们在这个页面中,我就可以让我的EL本来是从你的request这个预对象里面去取到我这样的一个数据,那么我们写出来就是这个样子的,到了大括号,然后呢,怎么写啊,你直接写个login message其实就可以,但是如果你这么写的话呢,它默认会什么呀?解释一下啊,就是ER表达式,哎,表达式啊,默认。
06:46
会从什么呀?会从我们的配置scope啊,Request scope session scope以及我们的application scope中来查找这个数据。
07:02
理解了吧,但如果说诶,我就知道这个数据是在什么地方的,那么你就可以具体去指定它,比方说我知道它就在我的request scope里面,那么你就可以写上一个request scope点,那么这样的话呢,它就直接从我这个request面去找了,它就不会挨个去找,明白这个意思吧,那么具体我们在使用的情况下的话,你写哪一种都行,只要他能找得到就可以,好,那么我们就把它写到这,好写到这以后呢,我们接下来再来测试,那么大家现在呢,还要带着一个疑问啊,就是刚刚的那个,如果我不做判断的话,一进去是不是有个纳瓦,现在我们来看一下,我通过EL本达写出来以后,一进来以后你是不是也取不到值啊,对吧,那我们看看它会不会有那个捺啊,来注意把这个写好以后呢,我们再回到页面中啊,我们来给它做一个刷新操作,Loging.JSP。
08:02
看一下有没有有那么没有吧,那说明什么呀,说明注意了啊JSP啊说明啊,这个en表达式如果有数据呢,它就会给你输出,如果是now的话呢,它什么也不输出,明白了吧,因为他取到那个值一看,哦,你是个nu是吧?OK,那他就啥都不给你输出了,因此我们也不需要再去做判断,好用吧?哎,这就是我们的一二表大师啊啊那除了这个之外的话呢,呃,我们将来呢,还会用到一些什么基本的一些什么运算啊,或者是什么判断的啊,就是我给大家什么简单去说一下我们常用的几个啊啊,那我就呃在我们这个影ex的JSP里面给大家去做演示吧,好吧,这里面不是我们演示了这个Java片段什么的吗?对吧,我们再来在这个下面呢,我们去演示一下这个一二百达式啊好。
09:02
表达式的这个啊,常用啊,常用的这个东西啊,那么首先第一个呢,我们可以这么来说啊,直接写个一二表达式就行了,比如说你可以算一个一加一,就是做一个什么基本的运算,能看懂吗?能看懂吧,哎,这是基本的运算啊,我们可以来访问一下的哈,那那我就访问什么呀,访问这个啊等尔D大家看是不是二啊看到了吧,啊就直接给你显示到这了哈,你可以这样哈,啊,我们BR一下吧,诶关了啊好BR一下啊,就是给他换个号,然后呢,再来访问一下,然后呢,刷新一下。算出来是不是二啊,对吧,这是我们这个啊,可以做一些运算,那这个加法运算会了,其他的你是不是也会写啊是吧?还可以做一些判断啊,比如说Dollar啊,比如说再去写一个BR啊,比如说这个do,然然后我们写一个啊,就是二大于三吗?二大于三吗?这不就是一个判断吗?那这个是什么呀?False法结果式啊,OK,那我们再看看是不是一个false啊,刷新一下,大家看是不是就是一个false啊,能看懂了吗?OK,还有什么呀,还有就是判断什么什么是不是空的啊,比如说呢,还可以这么来写,你看了哈。
10:22
它里面有一个判断空的语法,就是这个样子的啊,在一单页面,好再来写一个就是看Dollar,然后呢写一个empty,然后呢,通过这个呢来去判断一个某个变量是不是空的,比如说我就随便捏造一个对象吧,你找一个A啊,你找个A,这个A肯定是没有的吧,对吧,剪切一下啊,好,这个A肯定是个空的,那么现在这个值应该就是一个false处,我判断你是不是空的,那你是空的吧,对吧,叔叔你看哈,现在我再来这个A在这哈,我再来给大家去刷新一下,找一下。
11:00
是不是就是一个错啊,对吧?哎,它有这样的一个语法啊,那么当然你可以判断它是否飞空,那么非空的话呢,就相当于应该怎么写的呢?你在前面加上一个什么感叹号,理解吧,这就是判断一个什么非空啊,然后前面如果不加感叹号呢,就是判断它是不是空。明白这个意思了吧,OK,这些呢,就是我们表达是常用的啊,基本上这个运算判断我们都不会用,我们使用E表达式,主要就是用来取值,明白这个意思了吧,主要就是用来取值啊。OK啊,那么这就是我们给大家去说的这个EL表达式啊,它这样的一个表达式语言这个技术啊,那么像我们这个地方呢,其他的两个作用域,大家先等一等,我们在后面呢,会给大家加上明白了吧,OK。
我来说两句