EL表达式和JSTL表达式

EL表达式是Expression Language(表达式语言)可以替代JSP页面中数据访问时的复杂编码可以自动转换类型,并且使JSP的开发变得更加简单。

语法:${变量名}

// 在Servlet或JSP中保存数据

request.setAttribute("username", "LiYang");

// 在JSP中访问数据

姓名: ${username}

按照page → request → session → application的作用域顺序依次查找,找到即返回,最终找不到返回null。

点操作符———> ${user.name}

[ ]操作符———>${user["name"]}

Empty操作符

Empty操作符是一个前缀操作符,用于检测一个变量值是否为null或者为empty

例如:变量a不存在,则${empty a}返回的结果为true,${not empty a}返回的结果是false.

 

EL隐式对象介绍

JSTL是JSP标准标签库(JSP Standard Tag Library),提供一组标准标签,可用于编写各种动态功能.JSTL通常会与EL表达式合作实现JSP页面的编码.

JSTL常用标签有:set  out remove  if choose  forEach

set:设置指定范围内的变量值

  1将value值存储到范围为scope的变量variable中

<c:set   var="variable" value="value"  scope="scope"/>

var属性值是设置的变量名

value属性的值是富裕变量的值

scope属性对应的是变量的作用域

2将value值设置到对象的属性中

<c:settarget="target" property="property"  value="value"/>

—target属性是操作的JavaBean对象,可以用EL表达式来表示

—proprety属性对应JavaBean对象的属性名

—value属性是赋予JavaBean对象属性的值

out:计算表达式并将结果输出显示,类似于JSP中<%= %>,但功能更强大,代码更简洁

1不指定默认值

<c:out  value="value" />

value属性指需要输出的表达式的结果,可以通过EL表达式获取。

2指定默认值

<c:out  value="value"  default="default" />

default属性是value属性的值为空时输出的默认值

remove删除指定范围内的变量

<c:remove  var="variable"  scope="scope" />

var属性是指待移除的变量名称

scope属性是指移除的变量所在的范围。

if实现Java语言中if语句的功能

<c:if   test="codition"   var="variable"  scope="scope" >

 

 </c:if>

test属性是判断条件,当condition(可用EL表达式)的结果为true时,会执行主体内容,如果为false则不会执行。

var属性定义变量,该变量存放判断的结果,该属性可省略

scope属性是指var定义变量的存储范围。

 

choose:实现if - else if - else语句的功能

 

 <c:choose>

 <c:when test="condition1">

 内容1

  </c:when>

 <c:when test="condition2">

 内容2

  </c:when>

 ……

 <c:otherwise>

 内容n

 </c:otherwise>

 </c:choose >

 

<c:choose>是作为<c:when><c:otherwise>的父标签使用的,除了空白字符外,<c:choose>的标签体只能包含这两个标签

<c:when>标签必须有一个直接父标签<c:choose>而且必须在同一个父标签下的<c:otherwise>标签之前出现,在同一个<c:choose>标签中,可有多个<c:when>标签

<c:otherwise>标签必须有一个直接的父标签<c:choose>,而且必须是<c:choose>标签中最后一个嵌套的标签

—在运行时,判断<c:when>标签的测试条件是否为true,如果为true,那么标签体被JSP容器执行。如果为false,那么<c:otherwise>标签体将被执行。

forEach:实现对集合对象的遍历

<c:forEach    items="collection"     var="varName"     begin="start"   end="end"   step="stepSize"    varStatus="status"  >

循环体代码

</c:forEach>

var表示对当前成员的引用,即如果当前循环到第一个成员var就引用第一个成员,如果当前循环到第二个成员,他就引用第二个成员,以此类推。

varStatus属性用于存放var引用的成员相关信息,如索引等。

begin属性表示开始位置默认为0,该属性可省略

end属性表示结束位置,该属性可省略

step属性表示循环的步长,默认为1,该属性可省略

items指被迭代的对象


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值