jsp jstl 标签1

一、引入包:

jstl.jar (1.1) , standard.jar包

二、在jsp页面引入标签库

1)打开standard.jar包/META-INF/c.tld


<description>JSTL 1.1 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>

2) 在jsp页面引入标签库

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

3)Jstl Core标签库,共14个,分为4类:

多用核心标签:<c:out> <c:set> <c:remove> <c:catch>

条件控制标签:<c:if> <c:choose> <c:when> <c:otherwise>

循环控制标签: <c:forEach> <c:forToken>

URL相关标签: <c:import> <c:url> <c:redirect> <c:param>

=======================================

用于显示的<c:out>标签

<c:out>标签是一个最常用的标签,用于在JSP中显示数据。它的属性和描述如表9.3所示:
表9.3 <c:out>标签属性和说明
属性 描述
属性

描述
value

输出到页面的数据,可以是EL表达式或常量(必须)
default

当value为null时显示的数据(可选)
escapeXml

当设置为true时会主动更换特殊字符,比如“<,>,&”(可选,默认为true)
在JSTL1.0的时候,在页面显示数据必须使用<c:out>来进行。然而,在JSTL1.1中,由于JSP2.0规范已经默认支持了EL表达式,因此可以直接在JSP页面使用表达式。下面看一个示例。

它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。没有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>
有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” >
这里是BODY,可以是任何合法的jsp或者是html代码。
</c:out>
注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释,见红色部分代码

测试用例:

<h2>普通变量</h2>
jsp脚本:<%=request.getAttribute("hello") %><br/>
el表达式: ${hello}<br/>
jstl标签:<c:out value="${hello }" /><br/>

<h2>html变量</h2>
jsp脚本:<%=request.getAttribute("xm") %><br/>
el表达式: ${xm}<br/>
jstl标签:<c:out value="${xm }" /><br/>
jstl标签(escapeXml="true" ,默认是true):<c:out value="${xm }" escapeXml="true" /><br/>
jstl标签(escapeXml="false"):<c:out value="${xm }" escapeXml="false" /><br/>
jstl标签(default):<c:out value="${xm1 }" default="China" /><br/>
jstl标签(default 2):<c:out value="${xm1 }">Defalut China</c:out>

输出结果:
普通变量

jsp脚本:hello world
el表达式: hello world
jstl标签:hello world
html变量

jsp脚本:Xiamen
el表达式: Xiamen
jstl标签:<font color='red'>Xiamen</font>
jstl标签(escapeXml="true" ,默认是true):<font color='red'>Xiamen</font>
jstl标签(escapeXml="false"):Xiamen
jstl标签(default):China
jstl标签(default 2):Defalut China

===================================

用于赋值的<c:set>标签
<c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。它的属性和描述如表9.4所示:
表9.4 <c:set>标签属性和说明
属性

描述
value

值的信息,可以是EL表达式或常量
target

被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选)
property

JavaBean实例的变量属性名称(可选)
var

被赋值的变量名(可选)
scope

变量的作用范围,若没有指定,默认为page(可选)
当不存在value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例:
<c:set value="this is andy" var="oneString"/>
${oneString} <br>
该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。
9.3.3 用于删除的<c:remove>标签
<c:remove>标签用于删除存在于scope中的变量。它的属性和描述如表9.5所示:
表9.5 <c:remove>标签属性和说明
属性

描述
var

需要被删除的变量名
scope

变量的作用范围,若没有指定,默认为全部查找(可选)
下面看一个示例:
<c:remove var="sampleValue" scope="session"/>
${sessionScope.sampleValue} <br>

该示例将存在于Session中名为“sampleValue”的变量删除。下一句EL表达式显示该变量时,该变量已经不存在了。

测试用例:

<c:set var="username" value="Tom" scope="page"/>
username:${username }<br/>
<c:remove var="username" scope="page"/>
username:${username }

=========================================

用于判断的<c:if>标签

该示例将判断request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为12则显示“It is 12 ”。判断结果被保存在page范围中的“visits”变量中。 

<c:if>标签用于简单的条件语句。它的属性和描述如表9.6所示:
表9.6 <c:if>标签属性和说明
属性

描述
test

需要判断的条件
var

保存判断结果true或false的变量名,该变量可供之后的工作使用(可选)
scope

变量的作用范围,若没有指定,默认为保存于page范围中的变量(可选)
下面看一个示例:
<c:if test="${paramValues.sampleValue[2] == 12}" var="visits">
It is 12
</c:if><br>

${visits} <br>

测试用例:

<c:if test="${v1 < v2}" var="flag">
v1小于v2<br/> flag= ${flag }<br/>
</c:if>

<c:if test="${empty value1}" >
value1 是空字符串<br/>
</c:if>

<c:if test="${empty value2}" >
value2 是空集合<br/>
</c:if>

<c:if test="${empty value3}" >
value3 是null<br/>
</c:if>

======================================

用于复杂判断的<c:choose>、<c:when>、<c:otherwise>标签
这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。
<c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise>将作为其子标签来使用。
<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
<c:otherwise>标签没有属性,它等价于“else”语句。

下面看一个复杂条件语句的示例。

测试用例:

<c:choose>
<c:when test="${v1 == 1 }">
v1 == 1<br/>
</c:when>
<c:when test="${v1 == 2 }">
v1 == 2<br/>
</c:when>
<c:otherwise>
v1 == 3<br/>
</c:otherwise>
</c:choose>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值