EL+JSTL

EL
1.EL(Expression Language)
JSP脚本代码:结构混乱,脚本与HTML混合,容易出错代码不易于维护。
为了解决这些问题推出了EL表达式.使用EL表达式来优化程序代码,增加程序可读性。
2.EL表达式的作用:
1.获取域中数据(重点)
2.执行运算(重点)
3.获取web常用对象(重点)
4.调用java方法(了解)

例:
取得JavaBean对象的属性
${news.title}
取得数组、List、Map类型对象的元素
${list[0]}
使用各类运算符对原始数据进行简单处理
${totalRecordCount/pageSize}
屏蔽一些常见的异常
${username}
能实现简单的自动类型转换
$ {news}相当于(News)request.getAttribute("news")


3.语法:
EL表达式(Expression Language)
${EL 表达式} 例如:${username}
EL操作符
操作符“.”
获取对象的属性,例如:${news.title}
操作符“[]”
获取对象的属性,例如:${news["title"]}
获取集合中的对象,例如:${newsList[0]}

EL严格区分大小写,初学者严格按规范书写,有利于养成好的编码习惯

4.El表达式获取域中数据(访问作用域)
使用jsp中使用小脚本获取servlet传送过来数据内容
  <%=request.getAttribute("rname")%>
  <%=pageContext.getAttribute("pname")%>
  <%=session.getAttribute("sname")%>
  <%=application.getAttribute("aname")%>
使用El表达式接受Servlet传送过来数据内容
  ${requestScope.rname} 等同于${rname} //请求作用域
  ${pageScope.pname} //页面作用域
  ${seesionScope.sname} //会话作用域
  ${applicationScope.aname} //程序作用域


通过request的.getSession()方法.setAttribute()方法设置session的内容

5.EL四个域对象及生命周期
request 域范围是整个请求链
application 域范围是整个应用
session:域范围是整个会话
pageContext:域范围是一个jsp页面

6.EL运算符
( )                  改变执行的优先级,   例如${3*(4+5)}
+,-,*,/,%              算术运算符,                例如${3+2}
==,!=,>,>=,<,<= 关系运算符,              例如${a==b}或${a eq b}
&&,||,!                 逻辑运算符,             例如${true&&false}
?:                        条件运算符,             例如${a>b?1:2}
empty 用于检测变量名是否为空,是否等于NULL,例如${empty name}

empty有两个作用 1.判断是否为null 2.判断容器是否为null或者长度是否为0

EL在做多个对象运算时,要全写在一个{}内
${ param.password1 == param.password2 } √
${param.password1} == ${param.password2} ×
${ ${param.password1 } == ${ param.password2 } } ×



JSTL
1.JSTL(Java Page Standard Tag Library),JSP标准标签库。
该库包含了一系列开发JSP时用到的一系列标准标签。

Jstl标签库一共包含了四大标签库
core:核心标签库,重点
fmt:格式化标签库,两个主要标签
sql:数据库标签库,已过时
xml:xml标签库,已过时

2.配置环境

导入jar包jstl.jar和stand.jar包

在使用标签的jsp页面中使用taglib指令导入标签库。 指定标签库的uri,它不一定是真实存在的网址,但它可以让JSP找到标 签库的描述文件。
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
如果是1.0版本以下去掉jsp
3.Jstl核心标签
  JSTL core标签库中 12个标签
1、c:out 输出内容到浏览器端  是否显示转义
2、c:set 设置值到四种数据范围,设置四个范围中java对象的一个属 性值
3、c:remove 用来删除四个数据范围的数据
4、c:catch 捕获程序异常  
5、c:if 取代页面中if条件语句,记住没有c:else 5}">
6、c:choose c:when c:otherwise 一起使用 ,取代if elseif else 结构 、switch-case 结构
7、c:forEach 取代页面中for循环
8、c:forTokens 切割字符串
9、c:import 效果和include类似
10、c:url 完成URL重写 (禁用cookie的session追踪 ) ---- 结合 c:param完成 中文URL
forEach的属性
   begin属性  :设置循环变量从几开始
      end属性:   设置循环变量到几结束;
           step属性:设置循环变量的步长 
   var属性:定义一个变量,用于接收循环或把数组或集合中遍历的每一个元素 赋值给var指定的变量 
   varStatus属性:就是用来记录循环状态的,它可以创建一个循环vs,该循环变量有如下属性: 
                  count:用来记录循环元素的个数;
                  index:用来记录所循环元素的下标;
                  first:判断当前循环的元素是否是第一个元素;
                  last:判断当前循环的元素是否是最后一个元素;
                  current:代表当前循环的元素。
   
    items属性:指定要循环的变量,可以是一个数组也可以是一个集合,默认是支 持EL表达式 
 
 
 
原文地址:https://www.cnblogs.com/jiayiblog/p/10987619.html