EL表达式和JSTL标签库

EL表达式:

1.基本格式:${}

2.4种取值范围:pageScoperequestScopesessionScopeapplicationScope

${requestScope.user.name}

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

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

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

${1+1}

${user.age<18}

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

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

5.EL11个隐含对象

pageContext,paramparamValues,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核心库常用标签:

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

1.JSTL表达式标签:

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

输出

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

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

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

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

变量赋值

属性:var--变量名

value--

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

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

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

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

移除变量

<c:catsh></c:catch>

捕获异常

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

2.条件表达式标签:

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

条件判断

属性:test--条件表达式

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

scope--变量范围

<c:choose>

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

<c:whentest="">第二种情况</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,varStatusforEach标签

4.URL操作标签:

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

文件导入

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

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

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

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

重定向

<c:url></c:url>

生成url地址标签

实验代码:

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

HelloJSTL标签:<br>

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

<c:outvalue="1+1"/><br>

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

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

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

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

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

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

<c:removevar="age"/>

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

<c:catchvar="exception">

<%

ints=8/0;

%>

</c:catch>

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

<h2>条件标签</h2>

<c:iftest="${emptyuser}">

user是空对象<br>

</c:if>

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

1+1=2

</c:if><br>

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

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

<c:choose>

<c:whentest="${i<5}">

i小于5

</c:when>

<c:whentest="${i>5}">

i大于5

</c:when>

<c:otherwise>

i等于5

</c:otherwise>

</c:choose>

<h2>循环标签</h2>

<%

Listlist=newArrayList();

list.add("list1");

list.add("list2");

list.add("list3");

list.add("list4");

list.add("list5");

list.add("list6");

request.setAttribute("list",list);

%>

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

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

${ite}>>

</c:forEach><br>

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

${ite}>>

</c:forEach><br>

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

${ite}>>

</c:forEach><br>

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

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

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

</c:forEach>

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

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

${ite}>>

</c:forTokens>

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

<!--

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

</c:import>

-->

<iframesrc="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>

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

你可能感兴趣的:(jstl标签)