JSP页面引入:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
1.<c:if>
if标签的作用和Java程序中的if语句作用相同,用于判断条件语句。
标签使用格式:
<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application” />
<c:if test=”checkCondition” var=”VarName” scope=”page|request|session|application” >
body content
</c:if>
参数:
test:判断条件的表达式,返回类型为true或者false。
var:这个变量用于保存test条件表达式判断所返回的true或者false值。
scope:指定var变量所在的有效范围。
例子:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>JSTL if标签</title> </head> <body> <% String val = "abc"; request.setAttribute("val", val); %> <c:if test="${val=='abc'}" var="flag" /> <c:out value="判断结果为:"></c:out> <c:out value="${flag}" /> <br /> <c:if test="${flag==true}"> 字符串内容是abc. </c:if> <c:if test="${flag==false}"> 字符串内容不是abc. </c:if> <hr /> <c:if test="${val=='abc'}" var="flag2"> 字符串内容为abc. </c:if> <br /> <c:out value="判断结果为:"></c:out> <c:out value="${flag2}" /> <hr /> <c:if test="${val=='abcd'}" var="flag3"> 字符串内容为abcd. </c:if> <br /> <c:out value="判断结果为:"></c:out> <c:out value="${flag3}" /> </body> </html>
输出:
判断结果为: true
字符串内容是abc.
字符串内容为abc.
判断结果为: true
判断结果为: false
2.<c:choose>
这些标签一般是组合起来一起使用的,就相当于Java程序中的switch条件语句。
在<c:choose>标签体中包括<c:when>和<c:otherwise>子标签。<c:when>子标签代表<c:choose>的一个条件分支。
<c:otherwise>子标签必须使用在<c:choose>标签的体内,而且必须是在最后的分支上。
例子:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>JSTL choose标签</title> </head> <body> <% int val = 1; request.setAttribute("val", val); %> <c:choose> <c:when test="${val==1}"> <c:out value="Val值为1." /> </c:when> <c:when test="${val==2}"> <c:out value="Val值为2." /> </c:when> <c:otherwise> <c:out value="Val为其他值." /> </c:otherwise> </c:choose> <br /> <c:choose> <c:when test="${val==2}"> <c:out value="Val值为1." /> </c:when> <c:when test="${val==3}"> <c:out value="Val值为2." /> </c:when> <c:otherwise> <c:out value="Val为其他值." /> </c:otherwise> </c:choose> </body> </html>
输出:
Val值为1.
Val为其他值.
3.<c:forEach>
forEach标签使用来对一个Collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数。
使用格式如下:
<c:forEach items=”collection” var=”varName” [varstatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]>
body content
</c:forEach>
参数:
var:也就是保存在Collection集合类中的对象名称。
items:将要迭代的集合类名。
varStatus:存储迭代的状态信息,可以访问到迭代自身的信息。
begin:如果指定了begin值,就表示从items[begin]开始迭代,如果没有指定begin值,则从集
合的第一个值开始迭代。
end:表示迭代到集合的end位时结束,如果没有指定end值,则表示一直迭代中集合的最后一
位。
step:指定迭代的步长。
例子:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page import="test.jstl.Test,java.util.List,java.util.ArrayList"%> <html> <head> <title>JSTL choose标签</title> </head> <body> <% List<Test> list = new ArrayList<Test>(); Test test = new Test(); test.setName("名字1"); test.setValue("值1"); list.add(test); test = new Test(); test.setName("名字2"); test.setValue("值2"); list.add(test); test = new Test(); test.setName("名字3"); test.setValue("值3"); list.add(test); test = new Test(); test.setName("名字4"); test.setValue("值4"); list.add(test); request.setAttribute("list", list); %> <c:out value="直接输出:"></c:out> <br /> <c:forEach items="${list}" var="test"> <c:out value="${test.name}"></c:out> <c:out value=","></c:out> <c:out value="${test.value}"></c:out> <br /> </c:forEach> <hr /> <c:out value="指定输出:"></c:out> <br /> <c:forEach items="${list}" var="test" begin="1" step="2"> <c:out value="${test.name}"></c:out> <c:out value=","></c:out> <c:out value="${test.value}"></c:out> <br /> </c:forEach> <hr /> <c:out value="全部信息输出:"></c:out> <br /> <table border="1"> <tr> <td><c:out value="索引" /></td> <td><c:out value="迭代次数" /></td> <td><c:out value="是否第一个" /></td> <td><c:out value="是否最后一个" /></td> <td><c:out value="名字"></c:out></td> <td><c:out value="值"></c:out></td> <c:forEach items="${list}" var="test" varStatus="s"> <tr> <td><c:out value="${s.index}" /></td> <td><c:out value="${s.count}" /></td> <td><c:out value="${s.first}" /></td> <td><c:out value="${s.last}" /></td> <td><c:out value="${test.name}"></c:out></td> <td><c:out value="${test.value}"></c:out></td> </tr> </c:forEach> </table> <br /> <c:out value="forEach处理字符串a,b,c:"></c:out> <br /> <c:forEach items="a,b,c" var="val"> <c:out value="${val}"></c:out> <br /> </c:forEach> </body> </html>
输出:
直接输出:
名字1 , 值1
名字2 , 值2
名字3 , 值3
名字4 , 值4
指定输出:
名字2 , 值2
名字4 , 值4
全部信息输出:
索引 | 迭代次数 | 是否第一个 | 是否最后一个 | 名字 | 值 |
0 | 1 | true | false | 名字1 | 值1 |
1 | 2 | false | false | 名字2 | 值2 |
2 | 3 | false | false | 名字3 | 值3 |
3 | 4 | false | true | 名字4 | 值4 |
forEach处理字符串a,b,c:
a
b
c
4.<c:forTokens>
forTokens标签的作用和Java中的StringTokenizer类的作用非常相似,它通过items属性来指定一个特定的字符串,然后通过delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组。和forEach标签一样,forTokens标签也可以指定begin和end以及step属性值。
使用格式如下:
<c:forTokens items=”stringOfTokens” delims=”delimiters” var=”varName”
[varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>
body content
</c:forTokens>
参数:
var:进行迭代的参数名称。
items:指定的进行标签化的字符串。
varSatus:每次迭代的状态信息。
delims:使用这个属性指定的分隔符来分割items指定的字符串。
begin:开始迭代的位置。
end:迭代结束的位置。
step:迭代的步长。
例子:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page import="test.jstl.Test,java.util.List,java.util.ArrayList"%> <html> <head> <title>JSTL forTokens标签</title> </head> <body> <% String str = "a,b,c|d,e,f,g|h,i,j"; request.setAttribute("str", str); %> <c:out value="字符串内容为:"></c:out> <c:out value="${str }"></c:out> <br /> <c:out value="forTokens标签,按\",\"分隔输出:"></c:out> <br /> <c:forTokens items="${str }" delims="," var="val"> <c:out value="${val}"></c:out> <br /> </c:forTokens> <hr /> <c:out value="forTokens标签,按\"|\"分隔输出:"></c:out> <br /> <c:forTokens items="${str }" delims="|" var="val"> <c:out value="${val}"></c:out> <br /> </c:forTokens> <hr /> <c:out value="forTokens标签,按\",\"和\"|\"分隔输出:"></c:out> <br /> <c:forTokens items="${str }" delims=",|" var="val"> <c:out value="${val}"></c:out> <br /> </c:forTokens> <hr /> <c:out value="forTokens标签,双重迭代按\",\"和\"|\"分隔输出:"></c:out> <br /> <c:forTokens items="${str }" delims="|" var="val"> <c:out value="${val}"></c:out> <br /> <c:forTokens items="${val }" delims="," var="val2"> <c:out value="${val2}"></c:out> <br /> </c:forTokens> </c:forTokens> <hr /> <c:out value="forEach标签也可以处理:"></c:out> <br /> <c:forEach items="${str }" var="val"> <c:out value="${val}"></c:out> <br /> </c:forEach> </body> </html>
输出:
字符串内容为: a,b,c|d,e,f,g|h,i,j
forTokens标签,按","分隔输出:
a
b
c|d
e
f
g|h
i
j
forTokens标签,按"|"分隔输出:
a,b,c
d,e,f,g
h,i,j
forTokens标签,按","和"|"分隔输出:
a
b
c
d
e
f
g
h
i
j
forTokens标签,双重迭代按","和"|"分隔输出:
a,b,c
a
b
c
d,e,f,g
d
e
f
g
h,i,j
h
i
j
forEach标签也可以处理:
a
b
c|d
e
f
g|h
i
j
相关推荐
jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2...
jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2
- `<c:choose>`, `<c:when>`, `<c:otherwise>`:多条件判断 - `<c:forEach>`:迭代遍历集合 - `<c:set>`, `<c:remove>`:设置和移除变量 **SQL模块** 提供了与数据库交互的标签,如执行SQL查询、处理结果集等: - `...
- `<c:if>` 和 `<c:choose>`:条件判断。 - `<c:when>` 和 `<c:otherwise>`:选择结构。 - `<c:forLoop>` 和 `<c:forEach>`:循环操作。 - `<c:url>` 和 `<c:param>`:创建URL并添加参数。 - `<c:remove>`:移除一个...
jstl-1.2.1,之前的版本需要在服务器中配置一下,而且它分成了两个jar(jstl.jar和standard.jar)还有一个tld文件,而1.2已经不用配置了,直接把javax.servlet.jsp.jstl-1.2.1.jar和javax.servlet.jsp.jstl-api-1.2.1...
`jstl-impl.jar`通常包含Core、Format、Function、SQL和XML五个主要的标签库,每个库都有对应的标签和功能。 在实际项目中,为了使JSTL能够正常工作,这两个jar文件通常需要一起添加到项目的类路径(Classpath)中...
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config,以上错误可以使用以下策略试试,tomcat的lib文件夹下加入:jstl-1.2.jar、jstl-api-1.2.jar、jstl-impl-1.2.jar三个包。
jstl-api-1.2、jstl-impl-1.2.jar标签包,两份。
导入时需要将两个都导入,jstl-1.2.jar是高版本的,是将低版本的两个文件合成一个了,故只需要导入一个文件即可,导入的同时在jsp文件首行写入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" ...
标签中的"_jstl-impl-1.2.jar_ jstl-impl-1.2 jstl-impl-1.2.jar jstl.impl jstl.jar"进一步强调了JSTL的实现版本1.2,"impl"通常表示这是实现层,而非API接口。"jstl.jar"可能是指JSTL的核心库,不包含具体实现,而...
1. **Core Library**(c:):提供了基本的控制流和数据处理功能,如条件语句(if, choose, when, otherwise)、迭代(forEach, forTokens)、URL重写(redirect, url)等。 2. **Format/Internationalization ...
在Java Web开发中,JSTL(JavaServer...例如,使用`<c:if>`标签进行条件判断,`<c:forEach>`进行循环,`<fmt:formatDate>`进行日期格式化等。为了使用这些功能,需要在JSP页面顶部引入JSTL库的标签库定义,如: ```jsp ...
Tomcat启动报错 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp,检查你的项目中是否存在jsp-api.jar,jstl-api.jar,servlet-api.jar。
在描述中提到的"必须用到的两个标签库"可能是指Core库,这是JSTL最常用的部分,提供了基本的控制结构和数据操作标签。 使用JSTL的好处在于代码分离和可维护性提升。通过将业务逻辑从JSP页面中移出,JSP文件可以保持...
例如`<c:if>`, `<c:choose>`, `<c:when>`, `<c:otherwise>`, `<c:forEach>`, `<c:forTokens>`等。 2. ** fmt 标签库**:用于国际化和格式化数据,支持日期、时间、数字的格式化,以及资源包的管理。例如`...
- **Core标签库**:提供了基本的控制结构,如`<c:if>`、`<c:choose>`、`<c:forEach>`等,用于条件判断和循环。 - **Format/International化标签库** (`fmt`库):支持日期、时间、数字的格式化,以及多语言国际化...
- **标签的使用**:例如,`<c:forEach>`用于遍历集合,`<c:if>`用于条件判断,`<c:choose>`、`<c:when>`、`<c:otherwise>`用于多条件分支,`<fmt:formatDate>`用于日期格式化等。 - **部署与配置**:在web.xml中...
JSTL的核心标签库(core)提供了常见的控制结构,如`<c:if>`和`<c:forEach>`,用于条件判断和循环。JDBC标签库(jdbc)支持数据库操作,如查询和事务管理。XML处理标签库(fmt)则用于XML文档的解析和操作。最后,...
jstl-api.jar和jstl-impl-1.2.jar.zip
jstl-impl-1.2.2.jar!