JSP学习笔记(3)——JSTL 标签库

JSP Standard Tag Lib,名为JSP标准标签库,设计的目的主要用来方便我们将数据输出,而不是使用JSP中的语法<% %> <%= %> <%! %>。

平常使用的话,我们会在JSP在嵌套HTML代码来实现数据的获取,比如说把一个list中的内容转换为表格显示,需要使用到循环,还要在循环中嵌套HTML代码,看起来很不优雅,而且代码不好阅读。

根据JSTL标签所提供的功能,可以将其分为5个类别。

核心标签 c.tld

格式化标签 f.tld

SQL 标签 s.tl

XML 标签 x.tld

JSTL 函数

标签库可以和ESL表达式联用

核心标签库 c.tld

JSP学习笔记(3)——JSTL 标签库

set

相当于setAttribute方法

语法:

<c:set var="<string>" value="<string>" target="<string>" property="<string>" scope="page|requset|session|application"/> 属性 描述 是否必要 默认值
value   要存储的值     主体的内容  
target   要修改的属性所属的对象      
property   要修改的属性      
var   存储信息的变量      
scope   var属性的作用域     Page  

scope属性有四种选择:page,requset,session,application

//下面的标签相当于pageContext.setAttribute("html"); <c:set var="html" value="<h1>hello</h1>"/> <c:set var="html" value="<h1>hello</h1>" score="request"/> out

语法:

<c:out value="<string>" default="<string>" escapeXml="<true|false>"/> 属性 描述 是否必要 默认值
value   要输出的内容      
default   输出的默认值     主体中的内容  
escapeXml   是否忽略XML特殊字符     true  
//html是上面set的内容 //输出<h1>hello</h1>,忽略了转义 <c:out value="${pageScope.html}"></c:out> //输出显示一级标题hello <c:out value="${pageScope.html}" escapeXml="false"></c:out> if

标签判断表达式的值,如果表达式的值为 true 则执行其主体内容

语法:

<c:if test="<boolean>" var="<string>" scope="<string>"> ... </c:if> 属性 描述 是否必要 默认值
test   条件      
var   用于存储条件结果的变量      
scope   var属性的作用域     page  
<c:if test="${"hello".startWith("h")}" var="flag" > <p>hello以h开头</p> </c:if> //if-else语句 <c:if test="${"hello".startWith("h")}" var="flag" > <p>hello以h开头</p> </c:if> <c:if test="${flag}"> <p>hello不以h开头</p> </c:if> remove

标签用于移除一个变量(删除数据),可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。

语法:

//相当于xx.removeAttrbute <c:remove var="<string>" scope="<string>"/> choose <c:set value="3000" var="sal" /> <c:choose> <c:when test="${sal <3000}"> <p>z混日子</p> </c:when> <c:when test="${sal >=300 and sal <5000}"> <p>还算凑合</p> </c:when> <c:otherwise> <p>富有</p> </c:otherwise> </c:choose> import

相当于指令 <%@ include
菜鸟 JSTL-import

redirect

重定向

url

用于生成url,优点是可以把url存在变量中,之后便于引用

菜鸟 JSTL——url

param

可作为上面import,redirect,url中的子标签,表明带参

forEach

语法:

<c:forEach items="<object>" begin="<int>" end="<int>" step="<int>" var="<string>" varStatus="<string>"> 属性 描述 是否必要 默认值
items   要被循环的信息      
begin   开始的元素(0=第一个元素,1=第二个元素)     0  
end   最后一个元素(0=第一个元素,1=第二个元素)     Last element  
step   每一次迭代的步长     1  
var   代表当前条目的变量名称      
varStatus   代表循环状态的变量名称      
<c:forEach var="item" items="${lists}" varStatus="staus"> ${item} staus.index 当前的下标 0开始 staus.count 从1开始 </c:forEach> forTokens

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxxyz.html