JAVA JSP页面技术的EL表达式整理与总结
一.概念
表达式语言,简称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或者邮箱删除。