00:00
现在呀,在这个秀页面里边,我想做这样一个,做这样一件事情啊,咱们看。画条横线,然后我这显示谁的,我现在想来一个ABC这字符串。加上DEF字符串。就来个他,诶这这怎么报错,是不是他编译器这会儿没认识,先不管他。看一下。刷新一下啊啊,填上一个。看好,走。坏了。出问题了。
01:01
刚才还好好的,就加了一个,这为什么就错了呢?原因就出在这儿了。你需要注意。表达式。不支持对字符串的处理。就连最基本的这种字符串连接。他都做不了。他不不支持,那这不支持,这这这可是麻烦了怎么了。我们知道字符串对于我们Java编程来说啊很重要,你现在不支持字符串操作,那这。会很不方便。那怎么办呢?诶,他这边不直接支持,但是他支持什么。支持我们自定义EL函数。自定义EL函数。
02:02
好,我们来看怎么做啊。我这边儿。零七。啊,自定义EL函数term EL function自定义EL函数啊。这打嗝是好不了了呀,打了一天了。那么自定义,那我们首先要定义这样一个函数。这是个Java类,所以我们在这儿首先定义一个class,这class叫什么?随便啊。
03:00
嗯。我叫EL functions可以吧?空点北京power no点。Functions。Finish。这里边儿呢,我们来一个。静态,静态方法,Public。返回字符串,我现在想实现什么啊,咱们就实现一个最简单的,我现在想实现的功能就是将。字符串。小写变大写。这最简单一个。
04:04
好,那我这儿自己就定义这样一个函数。呃,Lower to upper吧,小写变大写吗?这里边儿需要来一个你变谁呀?是不是有个S?直接return,很简单的s.to upper case对吧,这是不是就实现小写变大写了,那这样的话我们这个函数就定义好了。当然你可以定义一堆啊,可以再定义很多是吧,大写变小写,什么字符串连接的啊,什么呃,截取子串的这些我们就不说了,就以一个为例啊好。
05:01
这是。自定义函数。这个自定义函数写好了,并不是说马上你就能用,你怎么用呢?你要知道我们的需求是什么。要在。JSP页面里边来用它,那怎么用。我们需要注册它了,而对它进行注册需要注意,别这样写了啊,该。累。及其函数。需要。需要在一个。扩展名为点TLD的。XL文件中进行注册,你注意是TLD的扩展名,可不是XL,是扩展名是TLD的叉L文件。
06:13
TLD是什么东西?Tag lab lab?是吧,Tag library。Deffy。Nation。什么意思啊?Tag是标签吧,这是标签库定义,标签库定义文件,我们要把它定义成一个标签,在JSP里边来用标签,标签是什么?我们之前学的不少了呀。那标签,你像我们前面学过的配置指令,Include指令,这都是标签的。
07:05
JSP动作,这也是标签呐,我现在要把它定义成一个标签。那怎么做呢?在这里边儿需要注册。而我们知道啊,这个注册有个问题。这个叉lil叉lil文件,我们知道叉lil文件是需要。约束的,即需要配置文件。头部。这个头部从哪儿来,我们自己写不出来。这个头部约束。可以从以下文件中进行什么复制?
08:02
哪个文件看好?在tomcat安装目录下。哪儿呢,我们打开。看Tom cat,这是不是tomcat角?安装目录。它里边我们找到web apps。Examples。万人法。JSP two就这个文件。就他。我就拷贝了啊。在这儿。文件名。
09:04
文件为就他。那好了,现在我们新建呀,说到新建了,那把它建到哪儿呢?这个XL文件我们要给它建到哪儿。这个。TLD的叉L文件需要。定义。在当前web项目的。Web INF目录下。好了,那我们给这定义了啊,Y音下是不是这个来。
10:00
找个什么叉L文件啊,我们要定义叉L。就这个。叫什么文件名随意。这样我就叫my function。Function function这个。Myu方可是FT吧?MY ft.TLD不要忘记啊,它是TD的。你看这仅仅是叉ML的这样一个头信息,现在我们也需要什么,需要这个TLD的头部信息,这不刚才找到这个文件了吗?打开它。这是注释,我们不用管哪儿是头部,就这。拿到拷贝下来。站站过来。OK了,给他粘过来了。
11:00
当然这个你如果嫌长啊,可以这样给它换个横。好。这看着就好一些了,你注意这个叉L文件里面标签是成对出现的,这个是t lab标签是吧,那这边70标签这边就有结束标签好了。在这个头部信息就有了,怎么报错呀。报错是因为它里边有必须的指标价,因为你这已经有了约束了。这个约束里边就给你定义死了,它里边必须要包含什么样的子标签,需要什么呢?哎,我们在这儿。还从这拷贝。拷贝谁拷贝他。这个啊,就不用要它了,都给你拷贝下来吧,要这么12344行。
12:05
这是描述信息是吧?Describe description描描述信息,我们不要它了。这个很重要。诶,报告错了吧,这是什么。这这个标签库的版本,这是1.0是吧。Short name name是什么?这个short name短名是吧?这里边定义的这个名称。将来我们要在。JSP里边使用。那么它就是这个标签库的名称,一个标签库一个short name,而一个标签库又定义在一个TLD文件里边,所以一般情况下,我们这个name的名字和这个文件名相同,就叫MYFFT,所以我这个也叫MYFT,当然也不一样,也可以啊,我们一般定义成一样的。
13:11
因为他们之间是一对一的,一个标签库对应一个she name,一个标签,一个标签库对应在一个TD文件里边,是不是。You ina。这个uri。将来也是要在JSP文件里边使用的,这个UI可以随便写。你想怎么写都行,比如我这儿写了啊,写的是。3W点北京power node.com杠。JSP杠,EL杠。Functions我就叫这个名,你随便其实叫什么都行啊,我我现在就定义这个名字了,标比较容易理解呀,是吧,这是。
14:06
北京动力节点定义的JSP里边有关EL的函数,EL的函数啊,OK了,这是什么?这实际上是。配置配置的,或者说啊定义的我们标签库的信息。定义标签库信息,紧接着我要注册谁,我们在这还定的有个函,有个函数呢呀,我要注册这个函数了。这个函数,这个函数你要注册这个函数所要注册这个类对吧,怎么注册还是从这里边拷贝找在最后看到没。这是不是有function拷贝?
15:05
哎呀,大家听我讲课痛苦,我讲课也很痛苦,光这个打打嗝这个事儿,哎呀痛苦死了,看哎这个我删掉的啊,原来是描述删掉。Name,这你要定义的这个函数是个什么函数,你给它起个名啊。一般这个名名称啊,要和呃,和这个函数名相同。为了给大家区分,让大家知道到底用的是谁,我这儿呢?给你换个名。这叫什么?叫my LA to upper,我加了个MY。当然如果你自己用用的话啊,让这个名字和这个名字保持一致,一般都是一致的,我这是为了让大家能理解啊,看他。
16:06
Function class这函数所属的这个类。这好说呀,写上呗,哪个类就这个,我拷贝全名。啊,拷贝签名,然后这方方法签名,你注意这个方法签名需要注意。方法签名是谁呀?是不是他呀,他要的是返回值和参数。返回值string要全名。你不能光写个string写全了,哎,加了点烂点,String方法名是什么?方法名是他呀。拷贝好参数呢。是不是也是string啊,OK了,这就可以了,所以这个是干嘛的。
17:06
注册。函数。好啦。函数也注册过了。你下班该干嘛了?函数定义了,函数注册了,下面就该用了。怎么个用法呢?很简单。我们定一个。JSP。index.jsp。记不记得我们说过?指令。JSP里边的指令有三类。配置指令。Include指令,还有个T指令对不对,配置指令和。
18:03
Include指令我们已经学完了。现在还有。开了开个lab指令没学呢,那现在我们就来用一下,我把这个就删了啊,这删掉它怎么写。TIgEr lab。然后这是uri。Pray u是谁?U就是他。就这个uri拷贝CTRLC。康威。这什么意思啊,前缀前缀是谁?这个。
19:01
这个。好。在这保存OK了,当然你不用这样拷贝也行啊,你看着。我这直接。哎。Out,加问号你看看。你看看啊,Out加问号它直接就出来了,为什么你这里边能用的就这一个uri。奥大加问奥,奥大加问号就直接出来了。不用往里面拷贝也一样。那好,现在怎么用看好了。看好了。我这里边儿来一个,哎呀,痛苦痛苦。看着怎么用啊。把前缀放到这MYFT。冒号你看。Out,加问号这个东西就出来了。
20:03
当然了,如果说我们这里边定义了好几个啊,比如说我这再定一个,这是。小写变大写是吧,我这儿再来一个大写变小写。Upper to lower。那这个就是点to。那这时候你再写。嗯。冒号。妈,诶对,忘了这个写完了,光写了他了,你没注册呀,没注册肯定不行啊,是不是这个这个歌叫什么名啊,My upper。Tolo。
21:09
这就OK了。你现在在。奥特亚问号,你看是不是让你选的呀,哪一个?我们现在是up to,是不是?谁呀,这里面要放个参数谁。Yep。我ABC可以吧。这可以吧,字符串小写的字符串ABC给它变成是不是全大写好。好了,那现在。跑一下。
22:05
你看小写变大写没变了呀,是不是ABC还是ABC呀,怎么回事?这,这怎么没变了呢?My upper。怎么up to love了?错了,用错了,是不是我们要用的是MY?呀呀。MYFT冒号。你怎么出不来了,妈?Lower to upper。好,我们再来看刷新。变了吧,是不是没问题?
23:03
那这用起来是不是就方便多了?这就是我们说的啊。自定义的也要。说一下啊,我们这个例子举的这个例子一共经经过了几步三步,第一步先定义我们的这个函数。然后呢,在注册,这个注册需要在TLD文件里边注册对不对,TLD在哪?在当前web项目的web INF下。然后使用,使用的时候需要使用t lab。这个指令OK。那么。这这是这是常量啊,咱们再来一个变量吧。来变量啊,来个变量。
24:05
嗯,Name。User name。等于什么?Tom现在要把这个Tom变成全大写,变成全大写,那变成全大写当然到了MYFT冒号。是他吗?Ezena。好看清楚,看清楚这儿先什么。刷新。诶。怎么只有他?怎么这个没有啊?
25:01
为什么你需要注意啊,需要注意。因为我们之前说过,医药表达式只能读取哪呢?是不是四大域里边数据,你现在这个数据。就是一个普通的变量没有放到任何域里边,所以它读取不到,你要想让它处理,必须要把这个UN name给它放到四大域,我们放到配contest。要点name要点name。嗯。没问题吧,对不对,这是需要注意的啊,加个注释。只能。EL函数只能处理四大域中。
26:06
的属性。值机常量。当然,我们这定义的都是什么,都是对字符串的处理啊,及string。这是需要注意的一点。OK,呃,还有一点需要注意,你看这这个函数名用的是什么,My love to upper。用的是他吗?不是用的是谁。是不是这注册的这个啊。你使用的是这这个name啊,当然我们说了,一般这个名称是不是和这个名称是一致的呀,但你现在你要清楚它到底用用的是谁,OK,自定义。
27:01
EL函数,我们就说这些。
我来说两句