手机版

EL表达式在JSP _ power节点Java学院整理中的使用

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

JSP页面支持EL表达式,EL的全称是表达式语言。电致发光表达式的主要功能是:

(1)获取数据;

(2)执行操作;

使用电致发光表达式的11个隐含对象;

调用Java方法。

当然,EL表达式也可以和JSTL标签一起使用来显示其他功能,比如迭代等等。

让我们首先看看使用EL表达式来获取数据

在JSP页面中使用$ {identifier}的形式意味着通知JSP引擎调用Servlet中的page context . find attribute(" identifier ")来获取数据,具体来说就是使用identifier作为关键字从各个域中查找对象或属性。如果找到了,会以字符串的形式返回并显示在JSP页面上;如果没有找到,就会以空字符串“”的形式显示,这与jsp:getProperty标记不同,也说明EL表达式比这个标记更好。

示例1:获取域中的公共数据

% String name=' Dingrequest . setattribute(' personal name ',name);在% $ { personName }的浏览器中观察:

示例2:获取域中的对象或属性

% Person p=新人('丁',25);request.setAttribute('person ',p);% ${person} br ${person.name} br在浏览器中观察:

示例3:获取对象中对象的属性

域包中的两个JavaBean:

公共类Person {私有字符串名称;私人互联网时代;私人地址;省略每个属性的get和set方法}公共类地址{私有字符串city。获取和设置省略城市属性的方法} JSP页面中的代码是:

% Person p=new Person();地址a=新地址();a . setcity(' Amoy ');p . setaddress(a);request.setAttribute('person ',p);在浏览器中观察到% ${person.address.city}:

注意:这种对象的属性仍然是对象的。特别要注意的是,JSP上的属性名称必须一致,否则会抛出异常。

示例3-2:在web项目中使用EL表达式获取当前web项目路径

$ { page context . request . context path }

该电致发光表达式的值为:

请注意,表达式显示的前面已经有一个斜杠“/”。这里,EL表达式中的“pageContext”是EL中的隐式对象。详情请见下一篇博客。

示例4:取出列表集合中的元素

% ListPersonList=新数组列表人();personList.add(new Person('丁',25));personList.add(new Person('LRR ',24));request.setAttribute('persons ',person list);在% $ {persons [0]的浏览器中观察。name} love $ {persons [1]。名称}:

示例5:取出地图集中的元素

% MapString,Person personal map=new hashmap string,Person();personMap.put('p1 ',new Person('丁',25));personMap.put('p2 ',new Person('LRR ',24));request.setAttribute('pMap ',personal map);% $ { pmap . P1 . name } br love br $ { pmap[' p2 ']。名称}在浏览器中观察:

可以看出,除了使用“.”要获取与属性或映射集中的键对应的值,还可以使用“['identifier']”(注意括号中有单引号)。尤其是当标识符是数字时将报告错误,但“[标识符]”不会报告错误。

请注意,EL表达式可以获取对象的属性,因为对象中的字段提供了get方法,所以它变成了属性。EL只能得到对象的属性,不能得到对象的字段,要搞清楚。

EL表达式的缺点:无论是从List集合还是Map集合,EL表达式都不能用来迭代集合,所以如果需要迭代集合,EL表达式应该和JSTL标签一起使用。

EL表达式支持算术、逻辑或关系运算:

语法:$ {操作表达式}

(这里省略了算术运算符)

示例6:

% request . SetAttribute(' username ',' root ');request.setAttribute('password ',' 123 ');浏览器上显示的% $ { username==' root ' password==' 123 ' }为true。

除了以上三种简单的运算符外,EL表达式还支持空运算符和二进制表达式(表达式?值1:值2)

空运算符:检测对象是否为空,或者某些数据是否为空字符串

例7:

% request.setAttribute('person ',null);request.setAttribute('address ',' ');request.setAttribute('user ',new User());% $ { empty(person)} br $ { empty(address)} br $ { empty(user)}浏览器中的brobserve:

二进制表达式:

例8:

% User用户=新用户();user . setusername(' fjdingsd ');pageContext.setAttribute('user ',user);% Welcome: ${user!=null?在浏览器中观察到的User.username : ''}:

上面的例子使用了EL表达式的二进制表达式。如果用户对象不为空,则输出对象中的用户名属性;否则,输出空字符。

二进制表达式的另一种用法也可以用于数据回显。如果用户想要修改他的注册信息,当服务器(或从数据库)将他的数据返回到显示页面时,应该再次显示编辑的信息。

例9:

% request.setAttribute('性别','女性');% input type=' radio ' name=' gender ' value=' maly ' $ { gender==' maly '?选中' :''}男性输入类型=' radio' name=' gender' value='女主' $ {gender=='女主'?选中“:”}女性浏览器显示:

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:EL表达式在JSP _ power节点Java学院整理中的使用是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。