EL表达式

EL表达式
EL是Expression Language的简称,即表达式语言。用于给JSP标签的属性赋值。表达式也可以脱离标签单独使用。
格式: ${EL表达式}
作用: 替换和简化jsp页面中java代码的编写
EL 使用
jsp默认支持el表达式的。如果要忽略el表达式
设置jsp中page指令中:isELIgnored=“true” 忽略当前jsp页面中所有的el表达式

${表达式} :忽略当前这个el表达式
本项目中默认使用的web.xml 为

这个版本的isELIgnored默认设置为true
解决方法:
•不改变web.xml的情况下解决办法是在jsp页面头加入:<%@page isELIgnored=“false”%>
–<%@page isELIgnored=“false”%>的优先级要高于web.xml中的设置,因此在JSP中的设置会覆盖web.xml中的设置
•改变web.xml的约束
•<?xml version="1.0" encoding="UTF-8"?>

表达式对运算的支持 •算数运算符: + - * / (div) %(mod) •比较运算符: > < >= <= == != •逻辑运算符: &&(and) ||(or) !(not) •空运算符: empty 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0 {empty list}:判断字符串、集合、数组对象是否为null或者长度为0 emptylist:判断字符串、集合、数组对象是否为null*或者长度为0∗{not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0 <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> Title ${3 > 4} \${3 > 4}

算数运算符

${3 + 4}
${3 / 4}
${3 div 4}
${3 % 4}
${3 mod 4}

比较运算符

${3 == 4}

逻辑运算符

${3 > 4 && 3 < 4}
${3 > 4 and 3 < 4}
<h4>empty运算符</h4>

<%
String str = “”;
request.setAttribute(“str”,str);

List list = new ArrayList();
request.setAttribute("list",list);

%>
${not empty str}
${not empty list}

el获取域对象中的值 JSP EL支持下表列出的隐式对象: 隐含对象 描述 pageScope page 作用域 requestScope request 作用域 sessionScope session 作用域 applicationScope application 作用域 param Request 对象的参数,字符串 paramValues Request对象的参数,字符串集合 header HTTP 信息头,字符串 headerValues HTTP 信息头,字符串集合 initParam 上下文初始化参数 cookie Cookie值 pageContext 当前页面的pageContext 为了能够方便地输出数据,EL提供了11个隐式对象,其中最常用的有: 4个内置对象为了方便输出各个范围的属性: pageScope/ requestScope /sessionScope /applicationScope 页面上下文内置对象:pageContext <%@ page contentType="text/html;charset=UTF-8" language="java" %> el获取域中的数据

<%
pageContext.setAttribute(“name”, “xiaoer”);
request.setAttribute(“name”, "zhangsan ");
session.setAttribute(“name”, “lisi”);
application.setAttribute(“name”, “王五”);

%>

<%-- 使用 EL 表达式获得作用的值
${[作用域 Scope.]key}
如果不设置作用域,会从小到大去作用域的值
pageContext > request > session > application
如果没查到,则什么都不显示
注意事项:el 表达式只能取作用域以及表单参数的值
–%>


页面范围对象 p a g e S c o p e . n a m e < b r / > 请求范围对象 {pageScope.name} <br /> 请求范围对象 pageScope.name<br/>请求范围对象{requestScope.name}

会话范围对象 s e s s i o n S c o p e . n a m e < b r / > 上下文范围对象 {sessionScope.name} <br /> 上下文范围对象 sessionScope.name<br/>上下文范围对象{applicationScope.name}

${name}

el获取对象中的值 获取 javaBean、List集合、Map集合的值 语法:${域名称.键名.属性名} 创建com.gec.domain.User对象 public class User { private String name; private int age; private Date birthday; public User(String name, int age, Date birthday) { this.name = name; this.age = age; this.birthday = birthday; } public User() { } /** * 逻辑视图 * @return */ public String getBirStr(){ if(birthday != null){ //1.格式化日期对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2.返回字符串即可 return sdf.format(birthday); }else{ return ""; } }
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
public Date getBirthday() {
    return birthday;
}
public void setBirthday(Date birthday) {
    this.birthday = birthday;
}

}
el3.jsp 代码:
<%@ page import=“com.gec.domain.User” %>
<%@ page import=“java.util.*” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

el获取数据 <% User user = new User(); user.setName("张三"); user.setAge(23); user.setBirthday(new Date());
    request.setAttribute("u",user);
    List list = new ArrayList();
    list.add("aaa");
    list.add("bbb");
    list.add(user);
    request.setAttribute("list",list);


    Map map = new HashMap();
    map.put("sname","李四");
    map.put("gender","男");
    map.put("user",user);
    request.setAttribute("map",map);
%>

el获取对象中的值

${requestScope.u}

<%–
* 通过的是对象的属性来获取
* setter或getter方法,去掉set或get,在将剩余部分,首字母变为小写。
* setName --> Name --> name
–%>

${requestScope.u.name}<br>
${u.age}<br>
${u.birthday}<br>
${u.birthday.month}<br>

${u.birStr}<br>

<h3>el获取List值</h3>

<%-- List集合:${域名称.键名[索引]} --%>

${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[10]}<br>

${list[2].name}

<h3>el获取Map值</h3>
<%--  Map集合:
            ${域名称.键名.key名称}
            ${域名称.键名["key名称"]}--%>
${map.gender}<br>
${map["gender"]}<br>
${map.user.name}
pageContext 对象的支持 el表达式中有11个隐式对象,可以通过pageContext获取jsp其他八个内置对象 <%@ page contentType="text/html;charset=UTF-8" language="java" %> el隐式对象
${pageContext.request}<br>
<h4>在jsp页面动态获取虚拟目录</h4>
${pageContext.request.contextPath}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值