day05——EL和JSTL

EL表达式

EL快速入门

使用EL表达式能够简化JSP页面中Java代码的编写。格式非常简单,只需要在JSP页面中嵌入${表达式}即可。

 <%--将用户名存入请求域--%>
<%request.setAttribute("username","zhangsan");%>    <br>

Java代码获取数据:<%out.println(request.getAttribute("username"));%><br>

JSP表达式:<%=request.getAttribute("username")%><br>

EL获取数据:${username}

EL获取域值

EL表达式根据域对象中存储的数据类型不同,获取方式也稍有不同。

  • EL获取基本类型数据
<!--在request域中存数据-->
<% request.setAttribute("num",10); %>
    
<!--获取num的值-->
${num}  <br>
  • EL获取自定义对象
<!--request域中存储Student对象-->
<%
Student stu=new Student("张三",20);
request.setAttribute("stu",stu);
%>

<!--EL获取Student对象的属性值-->
学生对象:${stu}  <br>
学生姓名:${stu.name}  <br>
学生年龄:${stu.age}  <br>
  • EL获取List集合
<!--request域中存储List集合-->
<%
ArrayList<Student> list=new ArrayList<>();
list.add(new Student("张三",20));
list.add(new Student("李四",30));
request.setAttribute("list",list);
%>

<!--EL获取request域中的list集合,以及其元素-->
获取list集合:${list}  <br>
获取list集合的0索引学生:${list[0]}<br>
获取list集合的1索引学生姓名:${list[1].name}<br>
  • EL获取Map集合
<!--request域中存储Map集合-->
<%
Map<String,String> map=new HashMap<>();
map.put("孙悟空","花果山");
map.put("猪八戒","高老庄");
map.put("沙和尚","流沙河");
request.setAttribute("map",map);
%>

<!--EL获取request域中的map集合,以及其元素-->
获取map集合:${map}  <br>
获取map集合中键对应的值:${map["孙悟空"]}  <br>

EL运算符

算数运算符:+ - * / %
比较运算符:== != > >= < <=
逻辑运算符:&& || !
空运算符:empty
    功能:用于判断集合、数组、字符串是否为null并且长度是否为0
    ${empty list}

根据域中存储的数据,让单选框选中男或女

<%request.setAttribute("gender","女");%>
<input type="radio" value="男" ${gender=="男"?"checked":""}> 男
<input type="radio" value="女"${gender=="女"?"checked":""}> 女

EL表达式细节

1.EL表达式可以获取四大域的数据,依次从小到大的域中查找指定键名对应的值,如果找到了就不再往下找.
2.EL表达式可以获取八大隐式对象

JSTL标签库

JSTL(全称JavaServer Pages Tag Library)意为JSP标准标签库,可以用来简化在JSP页面中Java代码的编写。

导入JSTL相关jar包

在这里插入图片描述

在JSP页面导入JSTL包

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

常用JSTL标签

<!--if标签:相当于Java的if语句-->
<c:if test="${number%2==0}"> 
    ${number}是偶数
</c:if>

<!--choose标签:相当于Java的switch语句-->
<c:choose>
    <c:when test="${number=1}">星期一</c:when>
    <c:when test="${number=2}">星期二</c:when>
    <c:when test="${number=3}">星期三</c:when>
</c:choose>

<!--foreach标签:相当于Java的for循环-->
<c:forEach begin="0" end="${list.size()}" step="1" var="i">
    <c:if test="${list[i]!=null}">
        ${list[i].name},${list[i].age}<br>
    </c:if>
</c:forEach>

<!--foreach标签:类似Java增强for循环-->
<c:forEach items="${list}" var="element">
    ${element.name},${element.age}<br>
</c:forEach>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值