手机版

JAVA JSP页面技术的EL表达式整理与总结

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

一.概念

表达式语言,简称EL表达式,是Java中一种特殊的通用编程语言,它借鉴了JavaScript和XPath。主要功能是将Java Web应用嵌入到网页(如JSP)中,从而访问页面的上下文和不同范围内的对象,获取对象属性值,或者进行简单的操作或判断。EL得到一些数据后会自动转换数据类型。

主要功能:

1)获取数据

EL表达式主要用于替代JSP页面中的脚本表达式%=%,从而从各种类型的web域中检索java对象并获取数据。(web域中的对象、javabean的访问属性、访问列表集合、访问映射集合、访问数组)

2)执行操作

EL表达式可以用来执行JSP页面中一些基本的关系运算、逻辑运算和算术运算,从而完成JSP页面中一些简单的逻辑运算。${user==null}

3)获取web开发的公共对象EL

表达式定义了一些隐式对象,通过使用这些隐式对象,web开发人员可以很容易地获得对常见web对象的引用,从而获得这些对象中的数据。

4)调用Java方法

EL表达式允许用户开发自定义的EL函数,通过JSP页面中的EL表达式调用Java类的方法。

注意:% @ pageeiselignored="TRUE"%表示是否禁用EL语言,TRUE表示禁用EL语言。FALSE表示在JSP2.0中默认情况下不禁用EL语言

第二,语法

以“$ {”开头,以“}”结尾:

${EL表达式}

示例:

${ str} //输出字符串变量str ${ 1 2}的值//输出1 2 ${ user.name}的结果//输出用户对象的name属性。访问对象用户的getName()方法以获取名称成员的值。$ { user[" name "]}//同上$ {sessionscope ["user"]。name }//同上${list[0]} //访问list对象的第一项。$ { map[" key "]}//访问map指定的键值。第三,拿接线员来说

电致发光提供。和[]运算符来访问数据:访问Bean属性或映射条目,例如:${ user.name}

[]可以访问集合或数组的元素,也可以访问Bean的属性。例如:${ arr[0]。名称}

相同点和不同点:

相同:可用于访问对象的属性

区别:当要访问的属性名包含一些特殊字符时,例如。还是?或者-和其他非字母数字符号,必须使用[],例如,user.my-name应为{user ["my-name"]}

四.操作员:

有五个算术运算符:-、*、/或div、%或mod

有六个关系运算符:==或eq,=或ne,或lt,或gt,=或le,=或ge

有三个逻辑运算符:or和,| | or,或者不是

还有三个运算符:空运算符、条件运算符和()运算符

动词(verb的缩写)隐含对象

JSP EL支持下表中列出的隐藏对象:

您可以像在表达式中使用变量一样使用这些对象。

按功能分组如下:

1)访问参数值:

Param:可以获取单个请求的参数名对应的值。例如,$(param.name)相当于request.getParameter (name)。

ParamValues:可以根据参数名获取的字符串数组。例如,${paramvalues.name)相当于request . GetParameterValues(name)。

注意:param对象返回一个字符串,而paramValues对象返回一个字符串数组。

2)访问标题信息

Header:可以获取请求头信息中对应的单个字符串头值。表达式header.name等效于request.getHeader(名称)。例如{header [“用户代理”]}。用户代理标题可以打印出来。

HeaderValues:请求头名称可以映射到数字数组。例如,${headerValues.name}相当于request.getHeaderValues(名称)。

注意:header对象返回一个值,而headerValues返回一个字符串数组。

3)访问关于用户需求或页面的其他详细信息

页面上下文:

PageContext.request| get请求对象{pageContext.session} | get会话对象

获取请求的参数字符串{ page context . request . request url } |获取请求的URL,但不是请求的参数字符串

页面上下文。请求。上下文路径|服务的网应用程序的名称{pageContext.request.method} |取得超文本传送协议的方法(获取、发布)

pageContext.request.protocol|取得使用的协议(HTTP/1.1、HTTP/1.0){页面上下文。请求。远程用户} |取得用户名称

页面上下文。请求。远程地址|取得用户的互联网协议(互联网协议)地址{pageContext.session.new} |判断会议是否为新的,所谓新的会话,表示刚由计算机网络服务器产生而客户尚未使用的

pageContext.session.id|取得会议的ID {页面上下文。servletcontext。服务器信息} |取得主机端的服务信息

4)访问不同作用域的变量,如网上下文、会话、请求、页面:

页面范围:取得页面范围的值

如用pageScope.objectName访问一个JSP中页面范围的对象,还可以使用{页面范围。对象名。属性名称}访问对象的属性。

requestScope:取得请求范围的变量值

该对象允许访问请求对象的属性。如用requestScope.objectName访问一个JSP请求范围的对象,还可以使用{请求范围。对象名。属性名称}访问对象的属性。

会话范围:取得会话范围的变量值

该对象允许访问会话对象的属性。如:$sessionScope.name}

应用范围:取得应用程序范围的变量值

该隐式对象允许访问应用程序范围的对象

5) 访问饼干中的值

如要取得甜饼干中有一个设定名称为用户名的值,可以使用${cookie.username}来取得它。

六、使用太阳提供的标准埃尔函数库

由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套埃尔函数库供开发者使用。

这些埃尔函数在JSTL开发包中进行描述,因此在JSP页面中使用太阳公司的埃尔函数库,需要导入JSTL开发包,并在页面中导入埃尔函数库。

使用埃尔函数库

1) 导入jstl jar包

2) 在相应的jsp页面添加引用

% @ page语言=' Java ' ContentType=' text/html;charset=UTF-8 '页面编码=' UTF-8 '导入=' Java。乌提尔。* %!-导入需要使用塔格里布指令- %@ taglib前缀=' fn ' uri=' http://Java。星期日com/JSP/JSTL/functions“%!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' ' http://www .w3。org/TR/HTML 4/松散。DTD ' HTML hearteta http-equiv=' Content-Type ' Content=' text/HTML;charset=UTF-8'titleel函数演示/title/head body % String[]strs={ ' a ',' b ',' c ' };//定义一个字符数组list list=new ArrayList();//定义一个目录集合名单。添加(' a ');//向集合中添加一个字符pageContext.setAttribute('arr ',strs);//将字符数据以到达)的名字保存在页,面,张,版域中pageContext.setAttribute('list ',list);//将目录集合以目录的名字保存在页,面,张,版域中% ${fn:length(arr) }br/!- 3 - ${fn:length(list) }br/!-1-$ { fn : tolowercase(' Hello ')} br/!-你好-$ { fn : touppercase(' Hello ')} br/!- HELLO - ${fn:contains('abc ',' a')}br/!-true-$ { fn :包含忽略大小写(' ABC ',' Ab')}br/!- true - ${fn:contains(arr,' a')}br/!-true-$ { fn :包含忽略大小写(列表,' A')}br/!-true-$ { fn : end swith(' hello。Java ',').java')}br/-true-$ { fn :以'(hello)开头。Java ',' Hell')}br/!-true-$ { fn : indexof(' Hello-World ','-')}br/!- 5 - ${fn:join(arr,';)}br/!-a;b;c-$ { fn :替换(' Hello-World ','-',' ')}br/!-Hello World-$ { fn : join(fn : split(' a;b;c . ',';),'-')}br/!-a-B- c-$ { fn : substring(' 0123456789 ',6,9)}br/!-678-$ { fn : substring(' 0123456789 ',5,-1)}br/!-56789-$ { fn : substingafter(' Hello-World ','-')}br/!-World-$ { fn : substinbfore(' Hello-World ','-')}br/!-你好- ${fn:trim(' a b c ')}br/-a b c-$ { fn :擒纵Xml('html/html')}br/!- html/html - /body/html函数库详细介绍

字符串输入(字符串输入):把字符串参数转换成大写,并返回

字符串到大小写(字符串输入):把字符串参数转换成小写,并返回

整数索引(字符串输入,字符串子字符串):返回投入中子链出现的索引位置

Boolean contains(字符串输入,字符串子串):检查输入是否包含子串,如果是,返回true,否则返回false;

Boolean包含忽略大小写(字符串输入,字符串子串):检查输入是否包含子串,如果是,返回true,否则返回false

Boolean以(字符串输入,字符串子串)开头:确定输入是否以子串为前缀,如果是则返回true,否则返回false

Boolean endswith(字符串输入,字符串子字符串):确定输入是否以子字符串为后缀,如果是,则返回true,否则返回false

字符串子串(字符串输入,int beginIndex,int endIndex):以开始索引为起始值,以结束索引为结束值,在输入时截取子串

字符串后的子字符串(字符串输入,字符串子字符串):获取输入中子字符串位置后面的字符串

Substring before(字符串输入,字符串子串):获取String escapeXml(字符串输入)在输入中的子串位置的前面:escape ""、""、""、" "、"、"在输入中;

字符串修剪(字符串输入):删除输入中的前后空格;

字符串替换(字符串输入,string substringBefore,string substring after):用substring after替换输入中的substring before

String [] split(字符串输入,字符串分隔符):以分隔符为标识符分割输入,返回字符串数组;

Int length(Object obj):可以得到字符串、数组和各种集合的长度;

字符串连接(字符串数组[],字符串分隔符):用分隔符连接数组中的元素并返回一个字符串

七、EL调用自定义函数(调用普通类的静态方法)

EL非常强大。除了使用SUN提供的标准EL函数库,还可以调用自定义函数:

EL表达式语法允许开发人员开发自定义函数来调用Java类的方法。语法:$ {前缀:方法(参数)}

EL表达式中只能调用Java类的静态方法,这个Java类的静态方法需要在TLD文件中描述后才能被EL表达式调用。

EL自定义函数用于扩展EL表达式的功能,可以使EL表达式完成普通Java程序代码可以完成的功能。

电致发光功能开发步骤

只要执行以下三个步骤,就可以在静态页面中调用带有$ {prefix: method (params)}的自定义函数

写一个Java类的静态方法

编写一个标签库描述符(tld)文件,并在tld文件中描述自定义函数。

在JSP页面中导入和使用自定义函数

这里有一个案例:

1)编写一个Java类的静态方法

公共类GetMax { public static int togetMax(int a,int b){ return ab?a:b}}2)写入标记库描述符(tld)

?xml版本='1.0 '编码='UTF-8 '?taglib xmlns=' http://Java . sun.com/XML/ns/J2EE ' xmlns : xsi=' http://www . w3 . org/2001/XMLSchema-instance ' xsi : schema location=' http://Java . sun.com/XML/ns/J2EE http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd'版=' 2.0 ' tlib-version 1.0/tlib-version!-定义的版本-简称/简称!-可以随意取这个名字,尽量和文件名一样,这样我们就知道文件在哪里了,对应前缀-uri http://localhost :8080/spring MVC-1/uri!-这个地址是随机获得的。然后jsp页面介绍了这个地址函数!-定义函数-name getmax/name function-classelfunction.GetMax/function-class!-定义函数的完整类名-函数-签名int togetmax (int,int)/函数-签名!-解释返回值类型函数名和参数类型- /function /taglib3)在web.xml中指定tld文件的位置(这个步骤可以省略,因为应用程序会在/WEB-INF/)下自动找到tld文件)

jsp-config taglib!-这里的uri可以随意定义,但是以后一定要和这里一样使用-taglib-uri http://localhost 33608080/spring MVC-1/taglib-uri!-TLD文件的路径-taglib-location/web-INF/tags/mytaglib . TLD/taglib-location/taglib/JSP-config 4)在JSP页面中导入并使用自定义函数

% @ page语言=' Java ' ContentType=' text/html;charset=UTF-8 '页面编码=' UTF-8 ' % @ taglib uri=' http://localhost :8080/springmvc-1 '前缀='mytaglib'%!前缀是前缀的意思,应与mytaglib.tld中的简称对应- !DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' ' http://www .w3。org/TR/HTML 4/松散。DTD ' HTML hearteta http-equiv=' Content-Type ' Content=' text/HTML;charset=UTF-8 '标题自定义埃尔功能测试/标题/流浆池一和2求最大值=$ { mytaglib : togetmax(1,2)}/body/html运行截图

希望本篇文章对您有所帮助

版权声明:JAVA JSP页面技术的EL表达式整理与总结是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。