Java基础强化(四)-- EL与JSTL

JavaWeb基础(四)-- EL与JSTL

​ EL与JSTL是Jsp开发中常用的两个简化开发的小工具,在日后的框架学习中也有可能用到。内容比较简单,主要罗列知识点,JSTL部分有示例代码,El部分容易理解,不给出实例代码。有学习兴趣的同学可以自行落实代码,加强学习。

一、EL概述

1.概念:

​ Expression Language 表达式语言

2.作用:

​ 替换和简化jsp页面中的java代码的编写

3.语法:

​ ${表达式}

4.忽略El:

  • 设置jsp中page指令:isELIgnored=“true” 忽略当前jsp页面中所有的el表达式

  • \${表达式}:忽略当前el表达式

二、EL使用

1.运算:

​ El表达式支持以下运算符:

1.算数运算符: + - * /(div) %(mod)

2.比较运算符:> < == >= <= !=

3.逻辑运算符:&&(and) ||(or) !(not)

4.空运算符:empty(用于判断字符串、集合或数组对象是否为null或长度为0)

​ 举例:

​ ${empty list} 判断list是否为nul或长度为0,若是则返回true

​ ${not empty list} 判断list是长度大于0,若是则返回true

2.获取值

​ el表达式只能从域中获取对象的值

​ 语法:

1.${域名.键名}:从指定域中获取指定键的值

​ 域名称:

​ (1)pageScope --> pageContext

​ (2)requestScope -->request

​ (3)sessionScope -->session

​ (4)applicationScope -->application(ServletContext)

​ 举例:

​ 在request域中存储了name=张三

​ 则可以通过${requestScope.name}的EL表达式获取张三

2.${键名}:以此从最小的域中查找是否有该键名对应的值,找到即停止

3.获取对象、List集合、Map集合的值

(1)对象:${域名.对象名.属性名}

​ 属性名不是成员变量的名称,而是get方法的名称去掉get再将首字母改为小写

​ 其本质是调用对象的get方法

(2)List集合:${域名称.键名[索引]}

(3)Map集合:

​ ${域名称.键名.key名称}

​ ${域名称.键名.[“key名称”]

三、JSTL概述

​ 1.概念:JavaServer Pages Tag Library JSP标准标签(apache组织提供的开源的免费的jsp标签)

​ 2.作用:用于替换和简化jsp页面上的java代码

​ 3.使用步骤:

​ (1)导入jstl相关jar包

​ (2)引入标签库:taglib指令: <%@ taglib %>

​ 具体写法是在jsp页面上添加一句如下语句:

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

​ (3)使用标签

四、JSTL常用标签

1.if

​ <c:if>标签: 用于代替if语句

属性:

  • test,必备属性,接受一个boolean表达式
    * 若表达式为真,则显示标签体的内容。若表达式为假,则不显示标签体的内容

​ 示例代码:

<c:if test="1==2">1等于2</c:if>
<c:if test="1==1">1等于1</c:if>

​ 上述代码显示"1等于1"

2.choose

​ <c:choose > 标签用于代替switch语句

​ <c:when>相当于case

​ <c:otherwise>相当于defualt

​ 示例代码:

<%-- 
     完成数字编号对应星期几的案例
     	1.域中存储数字
     	2.使用choose标签取出数字
     	3.使用when标签做出数字判断
     	4.使用otherwise标签做其他情况处理
     --%>
<%
	request.setAttribute("number",3);
%>

<c:choose>
	<c:when test="${requestScope.number} == 1">星期一</c:when>
    <c:when test="${requestScope.number} == 2">星期二</c:when>
    <c:when test="${requestScope.number} == 3">星期三</c:when>
    <c:when test="${requestScope.number} == 4">星期四</c:when>
    <c:when test="${requestScope.number} == 5">星期五</c:when>
    <c:when test="${requestScope.number} == 6">星期六</c:when>
    <c:when test="${requestScope.number} == 7">星期日</c:when>
    <c:otherwise>数字输入错误</c:otherwise>
</c:choose>

​ 上述代码的显示结果为 “星期三”

3.foreach

​ <c:foreach>相当于java中的for语句

java代码中for语句的作用:

​ 1.完成重复的操作

for(int i=1;i<10;i ++){

}

​ 2.遍历容器

List list;

for(User user:list){

}

属性:

  • begin:开始值

  • end:结束值

  • var:临时变量

  • step:步长

  • varStatus:循环状态对象

       * index:容器中元素的索引,从0开始
       * count:循环次数,从1开始
    
  • item:容器对象

​ 示例代码(1):

<c:foreach begin="1" end="10" var="i" step="1">
	${i}
</c:foreach>

​ 显示结果:

12345678910

​ 示例代码(2):

<%
	List list = new ArrayList();
	list.add("aaa");
	list.add("bbb");
	list.add("ccc");

	request.setAttribute("list",list);
%>
<c:foreach item="${list}" var="strs" varStatus="s">
    ${s.index} ${s.count} ${strs} <br>
</c:foreach>

​ 显示结果:

0 1 aaa

1 2 bbb

2 3 ccc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值