Servlet(五)EL表达式

一、EL

1.什么是EL表达式

  • 简化页面代码
  • 在JSP开发中对对象的引用
  • 用来获得四个作用域对象中的属性

2.EL表达式的特点

  • EL表达式可以包含获取对象中的数据,自动类型转换,并且输出
    • 获取数据
    • 强制类型转换
    • 响应输出数据

3.EL表达式的方法

  • 只可完成加减法不可与字符串一起加减
    ${str1+str2}
  • empty 判断是否为空若存在则false不存在则true
    ${empty str1}
    ${empty str4}
  • 判断符 若有则对勾
    <input type=“checkbox” ${str5==“admin”?“checked”:""}>
<body>
<%
    request.setAttribute("str1","10");
    request.setAttribute("str2","20");
    request.setAttribute("str3","abc");
    request.setAttribute("str5","admin");
%>
<%--只可完成加减法不可与字符串一起加减--%>
${str1+str2}
<%--empty  判断是否为空若存在则false不存在则true--%>
${empty str1}
${empty str4}
<%--判断符  若有则对勾--%>
<input type="checkbox" ${str5=="admin"?"checked":""}>
</body>
  • 本质是调用Users类的getname()方法
<head>
    <title>Title</title>
</head>
<body>
<%
    Users user = new Users("admin","admin");
    request.setAttribute("user",user);
%>
${user.account}<%--本质是调用Users类的getname()方法--%>
${user}
</body>
  • 当4个作用域对象中都要相同的name属性时,
  • 默认按照最小的pageContext,request,session,application的顺序查找
  • 同一页面 同一请求 同一会话 同一应用程序
  • 同一浏览器 同一服务器
<body>
<%
    pageContext.setAttribute("name","pageContext");
    application.setAttribute("name","application");
    request.setAttribute("name","request");
    session.setAttribute("name","session");
%>
<%--
        当4个作用域对象中都要相同的name属性时,默认按照最小的pageContext,request,session,application的顺序查找
                                                      同一页面   同一请求  同一会话  同一应用程序
                                                                       同一浏览器   同一服务器
 --%>
${name}
${applicationScope.name}
${pageScope.name}
${requestScope.name}
</body>

二、JSTL

1.什么是JSTL

  • JSTL就是JSP标准标签库,使用JSTL实现JSP页面中逻辑处理

2.JSTL环境搭建

  • 导入标签库jar文件
  • 在JSP页面添加taglib指令
  • 使用JSTL标签
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

3.条件标签

<body>
<%
    request.setAttribute("num",10);
%>
<c:if test="${num==10}" var="res" scope="request">
                      <%--res定义一个变量 健   page值定存储结果的作用域--%>
    成立
</c:if>
例如在jsp的其他位置需要使用上面的条件判断的结果
${requestScope.res}
</body>

4.迭代标签

(1)循环数组
<body>
<%
    String[] array = {"a","b","c","d"};
    request.setAttribute("array",array);
%>
<c:forEach items="${array}" var="a">
    ${a}
    <br/>
</c:forEach>
</body>
  • 本质就是对拆分后的数组进行遍历
    • delims="" 拆分符
<body>
<%
    String s = "ad:ac:asd:sads";
    request.setAttribute("str",s);
%>
<c:forTokens items="${str}" delims=":" var="s">
    ${s}
    <br/>
</c:forTokens>
</body>
(2)循环列表
<body>
<%
    List<Users> list = new ArrayList<>();
    for (int i = 0; i < 20; i++) {
        Users users = new Users("admin"+i,10+i);
        list.add(users);
    }
    request.setAttribute("list",list);
%>
<table border="1" width="400">
    <tr>
        <td>序号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </tr>
    <a:forEach items="${list}" var="user" varStatus="s" begin="3" end="5">
        <tr>
            <td>${s.index}${s.count}${s.last}${s.begin}</td>
            <%-- 计数从定数开始         计数从一开始        --%>
            <td>${user.account}</td>
            <td>${user.i}</td>
            <td><a href="">删除</a> </td>
        </tr>
    </a:forEach>
</table>

5.格式化日期

  • <%–<fmt:setLocale value="${locale}"></fmt:setLocale>–%>
  • <%–国际化 程序可以适应不同国家的语言,日期,货币显示风格–%>
</head>
<body>
<%
    request.setAttribute("date",new Date());
    request.setAttribute("locale", Locale.US);
%>
<%--<fmt:setLocale value="${locale}"></fmt:setLocale>--%>
<%--国际化 程序可以适应不同国家的语言,日期,货币显示风格--%>
<fmt:formatDate value="${date}" pattern="yyyy年MM月dd日 HH:mm:ss"></fmt:formatDate>
</body>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值