EL表达式和JSTL标签库

EL表达式:

1.基本格式:${}

2.4种取值范围:pageScoperequestScopesessionScopeapplicationScope

${requestScope.user.name}

3.基本运算:.[] .用于取属性[]用于取ArrayListMapSet

${requestScope.map['apple']},${requestScope.list[1]}

4.{}里允许的运算:算术运算,关系运算,逻辑运算,empty/not empty空判断

${1+1}

${user.age<18}

${(user.age>18)&&(user.sex=='男')}

${empty user}判断user对象是否为空

5.EL的11个隐含对象

pageContext,param和paramValues,headerheaderValuescookie,initParam4种取值范围对象

*pageContext可获取jsprequest,response,out,session,config,servletContext等对象

${pageContext.session.uesr}

header

${header.host}

*cookie

${cookie.key}

================================================================================JSTL标签库:

1.核心标签库

a.JSTL表达式标签

b.条件标签

c.循环标签

d.URL操作标签

2.格式标签库(处理国际化,数字和日期格式)

3.SQL标签库(可以访问数据库)

4.XML标签库(可操作XML标记)

5.函数标签库(主要是字符串操作函数)

------------------------------------------------------------

需要掌握的JSTL核心库常用标签:

引入:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

1.JSTL表达式标签:

<c:out value="${1+1}" default="0"></c:out>

输出

属性:value--表示要显示的值;可以是字符串,也可以是EL表达式

escapeXml--是否转换特殊字符[默认是true]

default--当value中的对象空时的默认显示

<c:set var="" value="" target="" property="" scope=""></c:set>

变量赋值

属性:var--变量名

value--值

target--目标对象,可以是javaBean,集合对象

property--指定到目标对象的属性

scope--变量的作用范围[page(默认),request,session,application]

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

移除变量

<c:catsh></c:catch>

捕获异常

属性:var--变量,用于存储异常信息

2.条件表达式标签:

<c:if test=""></c:if>

条件判断

属性:test--条件表达式

var--变量表示条件表达式的值

scope--变量范围

<c:choose>

<c:when test="">第一种情况</c:when>

<c:when test="">第二种情况</c:when>

.....

<c:otherwise>其他情况</c:otherwise>

</c:choose>

3.循环标签:

<c:forEach></c:forEach>

循环

属性:items--循环类型

var--循环变量

begin--循环起始位置(0算起)

end--循环结束位置

sep--每次循环的步长

varStatus--循环状态[索引:index,计数:count,是否是首次循环:first ,是否是末次循环:last]

<c:forTokens></c:forTokens>

字符串分割循环

属性:iterms--循环对象

delims--分割字符

var--循环变量

begin,end,step,varStatus同forEach标签

4.URL操作标签:

<c:import url=""></c:import>

文件导入

属性:url--被导入资源的路径

charEncoding--被导入文件的编码格式

说明:该标签不仅可导入本站的静态文件还可导入不同站点的资源文件

<c:redirect url=""></c:redirect>

重定向

<c:url></c:url>

生成url地址标签

实验代码:

………………………………………………………………………………………………

Hello JSTL标签: <br>

<h2>表达式标签</h2>

<c:out value="1+1"/><br>

<c:out value="${1+1}"/><br>

<c:out value="${user}" default="显示默认值" /><br>

<c:out value="${user}">显示默认值</c:out><br>

<c:set var="name" value="设置变量"></c:set>

<c:out value="${name}"></c:out><br>

<c:set var="age" value="22"></c:set>

<c:remove var="age"/>

<c:out value="${age}" default="被移除了"></c:out><br>

<c:catch var="exception">

<%

int s=8/0;

%>

</c:catch>

<c:out value="异常是:${exception}"></c:out>

<h2>条件标签</h2>

<c:if test="${empty user}">

user是空对象<br>

</c:if>

<c:if test="${1+1==2}" var="v">

1+1=2

</c:if><br>

<c:out value="条件是:${v}"></c:out><br>

<c:set var="i" value="9"></c:set>

<c:choose>

<c:when test="${i<5}">

i小于5

</c:when>

<c:when test="${i>5}">

i大于5

</c:when>

<c:otherwise>

i等于5

</c:otherwise>

</c:choose>

<h2>循环标签</h2>

<%

List list=new ArrayList();

list.add("list1");

list.add("list2");

list.add("list3");

list.add("list4");

list.add("list5");

list.add("list6");

request.setAttribute("list",list);

%>

<c:out value="${list}"></c:out><br>

<c:forEach items="${list}" var="ite">

${ite} >>

</c:forEach><br>

<c:forEach items="${list}" begin="3" end="5" var="ite">

${ite }>>

</c:forEach><br>

<c:forEach items="${list}" begin="0" step="2" var="ite">

${ite }>>

</c:forEach><br>

<c:forEach items="${list}" var="ite" varStatus="status">

值:${ite }|索引:${status.index }|当前循环计数:${status.count }|是否为第一次循环:${status.first }

|是否为最后一次循环:${status.last }<br>

</c:forEach>

<c:set var="string" value="古都,雪国,千只鹤,山音,湖;伊豆的舞女"></c:set>

<c:forTokens items="${string}" delims=",;" var="ite">

${ite }>>

</c:forTokens>

<h2>URL操作标签</h2>

<!--

<c:import url="http://www.baidu.com" var="baidu">

</c:import>

-->

<iframe src="http://m.weather.com.cn/m/pn12/weather.htm " width="245" height="110" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>

…………………………………………………………………………………………………

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值