EL表达式 JSTL标签

为什么需要EL表达式和JSTL标签
JSP中嵌套大量的Java代码增加了页面内容的复杂度,使得页面不够简洁,不方便代码的维护.为此sun公司制定了JSP标签类似于(html标签)来代替Java代码.
Apache组织开发的一套标签库被sun公司整合后,称为标签库(JSP Standard Tag Library即JSTL),配合EL表达式,以达到减轻JSP文件复杂度,方便维护JSP文件的目的.

EL表达式
EL表达式是一套简单的计算规则,用于给JSP标签的属性赋值,也可以直接用来输出.
表达式也可以脱离标签单独使用.
作用
- 访问Bean的属性
1.通常情况下JavaBean指的是一个公共的类,含有一个空参的构造方法,一些属性以及访问这些属性提的set/get方法,方法名与属性名需要符合一定的规范.
2.使用EL表达式访问Bean属性时可使用下面两种方式
方式一: 对 象 名 . 属 性 名 方 式 二 : {对象名.属性名} 方式二: .:{对象名[“属性名”]}
如${user.name},执行过程中,容器会一次从page,request,session,application中查找绑定名称为"user"的对象,找到后调用"getName()"方法,输出结果.等同于
<%
User user = (User)request.getAttribute(“user”)
out.print(user.getName());
%>
可以指定对象的查找范围
${requestScope.user.name}在request域中查找,如果在该范围内没有找到指定的对象,则不会再去其他的域中查找.
- 输出简单的运算结果
在这里插入图片描述
- 获取请求参数值
${param.username}等价于request.getParameter(“username”);
${paramValues.city}等价于request.getParameterValues(“city”);

JSTL
JSP标签库,JSP标签是sun公司定义的一套标准,有Apache组织基于这套标准开发的一套标签库后又转给sun公司,被称为JSTL.
使用JSTL
将JSTL标签对应的jar文件拷贝到/WEB-INF/lib目录下,使用<%@taglib uri=" " prefix=" “%>
uri:JSP标签的命名空间 prefix:命名空间的前缀
if标签
<c:if test=” " var=" " scope=" "></c:if>
- 当test属性值为true时,执行标签体的内容.test属性可以使用EL表达式赋值.
- var属性:指定一个绑定名称
- scope属性:指定绑定的范围(page,request,session,application)
- 注:var要和scope配合使用
choose标签
<c:choose>
<c:when test = " "></c:when>

<c:otherwise></c:otherwise>
</c:choose>
- when表示一个处理分支,当test属性为true时会执行该分支,可以出现一次或者多次
- otherwise相当于java中switch中的default,可以出现0次或1次
forEach标签
用来遍历集合或者数组
<c:forEach var= " " items = " ">…</c:forEach>
- items属性:指定要遍历的集合,一般使用EL表达式来赋值
- var属性:指定一个额绑定名称,容器每次从集合中取一个对象,然后绑定到pageContext对象上
- varStatus属性:指定一个绑定名称,绑定值是一个由容器创建的对象,该对象封装了当前迭代的状态
标签的运行原理
容器依据JSP标签的命名空间找到标签的描述文件(.tld文件)然后依据标签名字找到标签类,接下来将该标签实例化.容器会依据标签的属性给标签实例的属性赋值,然后调用标签实例的doTag方法.

JSTL替换JSP代码
<%= …%>–${} <% %>–<c:xxx >…</c:xxx>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值