EL表达式

一、EL表达式作用:

  1. 可以代替JSP中的Java代码,让JSP文件中的代码看起来整洁易读。

二、步骤:

(1)从某个中取数据,取之前必须要保证数据已经存进域里
四大域:(pageContext仅jsp能使用,request,session,application)
(2)将取出的数据转换成字符串(不是字符串调用toString转成字符串)
(3)将字符串输出到浏览器

三、取数据顺序:

如果四个域中有同名数据,那默认从顺序:(从小到大)
pageContext(仅jsp能使用)
request
session
application

四、语法:

${key}
key后可跟.可跟[ ],一般跟. ,只有当key对象的属性名是abc.efg这种的,得用[ ](属性名abc.efg纯纯自找麻烦)

  1. 取域中的数据:
<%=request.getAttribute("username") %>
等价于:
${username}
  1. 取域中对象的属性值:

假设有java代码:

//创建对象
User user1 = new User();
user.setName("zhangsan");
user.setId("001");
//对象存到域中
request.setAttribute("u1",user1);

则:

<%=u1.getName()%>
等价于:
${u1.name}使用这个语法的前提是User类中有getName()方法。
等价于:
${u1["name"]}中括号要加双引号
  1. 取域中对象的属性值,属性是个对象:
<%=u1.getObject().getName()%>
等价于:
${u1.object.name}使用这个语法的前提是User类中有getObject()方法,Object类中有getName()方法。
  1. 获取Map集合中的数据:

假设有java代码:

Map<String,String> map = new Map();
Map.put("username","zhangsan");
Map.put("password","123");
request.serAttribute("a",map);

则:

${a.username}//zhangsan
${a.password}//123
  1. 获取数组、list集合中的数据:

假设有java代码:

String[] s = {"abc","def"};
request.setAttribute("a",s);

则:

${a[0]}//abc
$(a[1])//def
  1. 从指定域中取数据:
    若四个域中有同名数据,默认从小到大取,但又想取指定域的数据,可以用scope对象
${pageScope.data}
${requestScope.data}
${sessionScope.data}
${applicationScope.data}
  1. 获取JSP九大内置对象:
    因为EL表达式中只有pageContext对象,其余八大对象没有,所以在EL中其他八大对象可用pageContext的八个get方法获取
<%= request.getContextPath()%>
等同于:
${pagecontext.request.contextPath}
  1. 隐含对象param获取用户提交的参数:
浏览器URL:http://localhost:8080/xmm/index.jsp?username=lisi
<%=request.getParameter("username")%>//lisi
等同于:
${param.username}
  1. 隐含对象paramValues获取用户提交的参数:
浏览器URL:http://localhost:8080/xmm/index.jsp?aihao=chouyan&aihao=hejiu
<%=request.getParameterValues("爱好")%>//得到一个数组
等同于:
${paramValues.aihao}
获取数组中元素:
${paramValues.aihao[0]}
${paramValues.aihao[1]}
  1. 隐含对象initParam获取xml文件应用域中存储的数据:
<%=application.getInitParameter("pagesize")%>
等同于:
${initParam.pagesize}
  1. 运算符:
${10+"20"}//30,EL中不会进行字符串拼接,加号两边不是数字转数字,转不了报NumberFormatException错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姓蔡小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值