java web 08 EL表达式 获取java中的对象属性值遍历在页面上

08 EL表达式

EL 表达式的全称是:Expression Language。是表达式语言。

EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。

因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。

<%这里面可以写java代码。%> 写java代码可以拼接

<%=name%> 返回参数的值

<%!全局变量 方法 类%> 可以写方法与及类 或者全局变量

${通过键获取出属性} 获取键对应的对象

<%
    User user=new User();
    request.setAttribute("user", user);
    String msg=(String) request.getAttribute("msg");
    if(msg!=null){%>
    <h1><%=msg%></h1>
  <%}%>
  
  <h3>${user.name}</h3>
<body> 
<% //往四个域中都保存了相同的 key 的数据。 
request.setAttribute("key", "request");
session.setAttribute("key", "session"); 
application.setAttribute("key", "application"); 
pageContext.setAttribute("key", "pageContext"); 
%>
${key}

request session application pageContext都是jsp的内置对象。

若出现键名一直,则选取作用范围最小的。

显示优先:pageContext>request>session>application

pageContext,request,session,application是指变量(对象)的生命周期,它们都可以通过setAttribute()和getAttribute()来设定或读取属性。

pageContext对象的范围只适用于当前页面范围,即超过这个页面就不能够使用了。所以使用pageContext对象向其它页面传递参数是不可能的。

request对象的范围是指在一JSP网页发出请求到另一个JSP网页之间,随后这个属性就失效。

session的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就无效。比如断网或者关闭浏览器。(可以设置超时)

application的范围在服务器一开始执行服务,到服务器关闭为止。它的范围最大,生存周期最长。

案例:

<body> 
    <%
    Person person = new Person(); 
    person.setName("国哥好帅!"); 
    person.setPhones(new String[]{"18610541354","18688886666","18699998888"});
    List<String> cities = new ArrayList<String>(); 
    cities.add("北京"); 
    cities.add("上海");
    cities.add("深圳"); 
    person.setCities(cities); 
    Map<String,Object>map = new HashMap<>(); 
    map.put("key1","value1"); 
    map.put("key2","value2"); 
    map.put("key3","value3");
    person.setMap(map);
    pageContext.setAttribute("p", person);
    %>
    输出 Person:${ p }<br/> 
    出 Person 的 name 属性:${p.name} <br> 
    输出 Person 的 pnones 数组属性值:${p.phones[2]} <br> 
    输出 Person 的 cities 集合中的元素值:${p.cities} <br>
    输出 Person 的 List 集合中个别元素值:${p.cities[2]} <br>
    输出 Person 的 Map 集合: ${p.map} <br> 
    输出 Person 的 Map 集合中某个 key 的值: ${p.map.key3} <br>
    输出 Person 的 age 属性:${p.age} <br>
</body>

empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。

${里面可以实现大多运算符}

EL 表达式的 11 个隐含对象

变量类型作用
pageContextPageContextImpl它可以获取 jsp 中的九大内置对象
pageScopeMap<String,Object>它可以获取 pageContext 域中的数据
requestScopeMap<String,Object>它可以获取 Request 域中的数据
sessionScopeMap<String,Object>它可以获取 Session 域中的数据
applicationScopeMap<String,Object>它可以获取 ServletContext 域中的数据
paramMap<String,String>它可以获取请求参数的值
paramValuesMap<String,String[]>它也可以获取请求参数的值,获取多个值的时候使用。
headerMap<String,String>它可以获取请求头的信息
headerValuesMap<String,String[]>它可以获取请求头的信息,它可以获取多个值的情况
cookieMap<String,Cookie>它可以获取当前请求的 Cookie 信息
initParamMap<String,String>它可以获取在 web.xml 中配置的上下文参数

pageContext 对象的使用

<%-- 
	request.getScheme() 它可以获取请求的协议 
    request.getServerName() 获取请求的服务器 ip 或域名
    request.getServerPort() 获取请求的服务器端口号 
    getContextPath() 获取当前工程路径 
    request.getMethod() 获取请求的方式(GET 或 POST) 
    request.getRemoteHost() 获取客户端的 ip 地址 
    session.getId() 获取会话的唯一标识
--%>
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值