全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JSP中EL表达式用法_动力节点Java学院整理

JSP页面中支持使用EL表达式,EL全名为Expression Language。EL表达式的主要作用有:

  ① 获取数据;

  ② 执行运算;

  ③ 使用EL表达式的11大隐式对象;

  ④ 调用Java方法。

当然,EL表达式还能配合JSTL标签,进行其他一些功能的显示,例如迭代等等。

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

  在JSP页面中使用${标识符}的形式,就是通知JSP引擎在Servlet中调用pageContext.findAttribute(“标识符”)来获取数据,具体是以标识符作为关键字从各个域中来寻找对象或属性。如果找到,则以字符串形式返回显示在JSP页面上,如果没找到则以空字符串””显示,这一点跟<jsp:getProperty>标签不一样,也说明了EL表达式比这个标签要好用。

例1:获取域中的普通数据 

<%
     String name = "Ding";
     request.setAttribute("personName", name);
   %>
   
   ${personName }

浏览器中观察:

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

<%
    Person p = new Person("Ding",25);
    request.setAttribute("person", p);
   %>
   
   ${person }      <br>
   ${person.name }  <br>

浏览器中观察:

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

在domain包中的两个JavaBean:

public class Person {
  
  private String name;
  private int age;
  private Address address;
  
  。。。省略各个属性的get和set方法
  }

public class Address {
  private String city;
  
  。。。省略city属性的get和set方法
}

在JSP页面中代码为:

<%
      Person p = new Person();
      Address a = new Address();
      a.setCity("Amoy");
      p.setAddress(a);
      request.setAttribute("person", p);
   %>
   
   ${person.address.city }

在浏览器中观察:

注意:这种对象中属性还是对象的,要特别注意属性的名称一定在JSP上表现一致,否则会抛出异常。

例3-2:在web工程中使用EL表达式来获取当前web工程路径

 ${pageContext.request.contextPath}

该EL表达式的值为:

注意,该表达式显示的最前面就已经有一个斜杠了”/”。这里在EL表达式中的“pageContext”是EL中的一个隐式对象,具体请看下一篇博客。

例4:取出List集合中的元素

<%
    List<Person> personList = new ArrayList<Person>();
    personList.add(new Person("Ding",25));
    personList.add(new Person("LRR",24));
    request.setAttribute("persons",personList);
   %>
   
   ${persons[0].name } love ${persons[1].name}

浏览器中观察:

例5:取出Map集合中的元素

<%
    Map<String,Person> personMap = new HashMap<String,Person>();
    personMap.put("p1",new Person("Ding",25));
    personMap.put("p2",new Person("LRR",24));
    
    request.setAttribute("pMap", personMap);
   %>
   
   ${pMap.p1.name }  <br>
   love <br>
   ${pMap['p2'].name }

在浏览器中观察:

  可以看到除了用”.”来取得属性或者Map集合中key对应的值,还可以使用”[‘标识符']”来获取(注意中括号中有单引号),这个尤其在标识符为数字的情况下,使用”.”会报错,而使用”[‘标识符']”则不会报错。

  注意,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表达式还支持 empty运算符和二元表达式(表达式?值1:值2)

empty运算符:检测对象是否为null或某数据是否为””空字符串

例7:

<%
      request.setAttribute("person", null);
      request.setAttribute("address", "");
      request.setAttribute("user", new User());
   %>
   ${empty(person)}   <br>
   ${empty(address)}  <br>
   ${empty(user)}     <br>

浏览器中观察:

二元表达式:

例8:

<%
    User user = new User();
    user.setUsername("fjdingsd");
    pageContext.setAttribute("user", user);
   %>
    
  欢迎您:${user!=null ? user.username : '' }

浏览器中观察:

  上面这个例子使用EL表达式的二元表达式,如果user对象不为null,则输出该对象中的username属性,否则输出空字符。

  二元表达式的另一种用途还可以用来做数据回显,假设有一个用户要修改其注册信息,那么服务器(或从数据库)在返回其数据到显示页面时,应该在他编辑过的信息重新显示出来。

例9:

<% 

  request.setAttribute("gender", "female");

%>

<input type="radio" name="gender" value="male" ${gender=='male'?'checked':'' }>男 
<input type="radio" name="gender" value="female" ${gender=='female'?'checked':'' }>女 

浏览器中显示:

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


# JSP  # EL  # 表达式  # El表达式使用问题javax.el.ELException:Failed to parse the   # EL表达式简介_动力节点Java学院整理  # EL表达式的隐式对象_动力节点Java学院整理  # 浅谈java里的EL表达式在JSP中不能解析的问题  # JAVA JSP页面技术之EL表达式整理归纳总结  # Javaweb El表达式实例详解  # Java后端用EL表达式改进JSP  # 器中  # 象中  # 运算符  # 是从  # 迭代  # 报错  # 则以  # 有一个  # 是因为  # 在他  # 还可以  # 隐式  # 欢迎您  # 还能  # 可以用  # 中有  # 空字符串  # 可以看到  # 三种  # 不为 


相关文章: 如何用PHP快速搭建CMS系统?  山东云建站价格为何差异显著?  南京网站制作费用,南京远驱官方网站?  如何获取PHP WAP自助建站系统源码?  建站10G流量真的够用吗?如何应对访问高峰?  如何快速搭建响应式可视化网站?  如何快速生成可下载的建站源码工具?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  网站制作新手教程,新手建设一个网站需要注意些什么?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  ,柠檬视频怎样兑换vip?  如何快速搭建虚拟主机网站?新手必看指南  电商网站制作公司有哪些,1688网是什么意思?  如何在搬瓦工VPS快速搭建网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  如何通过云梦建站系统实现SEO快速优化?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  文字头像制作网站推荐软件,醒图能自动配文字吗?  建站之星如何防范黑客攻击与数据泄露?  青岛网站建设如何选择本地服务器?  网站微信制作软件,如何制作微信链接?  宝塔Windows建站如何避免显示默认IIS页面?  北京网站制作公司哪家好一点,北京租房网站有哪些?  建站之星备案是否影响网站上线时间?  ,怎么用自己头像做动态表情包?  如何获取上海专业网站定制建站电话?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  智能起名网站制作软件有哪些,制作logo的软件?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  建站主机CVM配置优化、SEO策略与性能提升指南  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  移民网站制作流程,怎么看加拿大移民官网?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  购物网站制作公司有哪些,哪个购物网站比较好?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  如何在万网ECS上快速搭建专属网站?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  成都网站制作报价公司,成都工业用气开户费用?  如何在Windows虚拟主机上快速搭建网站?  ,在苏州找工作,上哪个网站比较好?  如何用景安虚拟主机手机版绑定域名建站?  如何在阿里云域名上完成建站全流程?  代购小票制作网站有哪些,购物小票的简要说明?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  SQL查询语句优化的实用方法总结 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。