它包含两部分:标签库和表达式语言(Expression Language,EL)。标签库目前支持如下4种标签:
XML processing----支持xml文档的处理。前缀是x,可以参照http://java.sun.com/jstl/xml
I18N capable formatting----支持对JSP页面的国际化。前缀是fmt,可以参照http://java.sun.com/jstl/fmt
Database access(SQL)----支持JSP对数据库的操作。前缀是sql,可以参照http://java.sun.com/jstl/sql
表达式语言
<some:tag value="${expr}" />
例如:
<c:out value="${username}" />
2、value属性包含一个或多个属性,这些属性被文本分割或围绕。
<some:tag value="some${expr}${expr}text${expr}" />
3、value属性仅仅包含文本。
<some:tag value="some text" />
${user.username}或者${user["username"]},两种意义相同。
${empty param.username}
如,${param.firstname == null}。
==或eq-----相等检查
!=或ne-----不等检查
<或lt-----小于检查
>或gt-----大于检查
<=或le-----小于等于检查
>=或ge-----大于等于检查
value----输出信息,可以使EL表达式或常量,是个必须有的属性。
default----value为空时显示的信息
escapeXml----为true时避开特殊的xml字符集
实例如下:
<c:out value="${user.username}" default="guest" />
application(ServletContext)中取,如果都没有就不显示。
value----输出信息,可以使EL表达式或常量
target----需要修改属性的变量名,一般是JavaBean的实例
property----需要修改的JavaBean属性,如果target指定了,这个必须指定
var----需要保存信息的变量
scope----保存信息变量的范围
实例如下:
<c:set value="${test.testinfo}" var="test2" scope="session" />
var----需要保存信息的变量,这个是必须指定的
scope----保存信息变量的范围
实例如下:
<c:remove var="test2" scope="session" />
test----需要评价的条件,相当于if中的条件,是个必须指定的
var----需要保存结果的变量名
scope----保存条件结果的变量范围
c:choose标签
test----需要评价的条件,是个必须指定的
c:otherwise标签
<c:if test="${user.wealthy}">
user.wealthy is true.
</c:if>
<c:when test="${user.generous}">
user.generous is true.
</c:when>
<c:when test="${user.stringy}">
user.stringy is true.
</c:when>
<c:otherwise>
user.generous and user.stringy are false.
</c:otherwise>
</c:choose>
如果user.stringy的值为true,则显示“user.stringy is true.”;
其他所有情况(即user.generous的值跟user.stringy的值都不为true)全部显示“user.generous and user.stringy are
注意:JSTL中没有形如if...else...的条件语句,所以只能用,和标签来共同完成。
3、循环控制标签
items----进行循环的项目
begin----开始条件,默认值是0
end----结束条件,默认值是集合中的最后一个项目
step----步长,默认值是1
var----代表当前项目的变量名
varStatus----显示循环状态的变量
实例如下:
<c:forEach items="${vectors}" var="vector">
<c:out value="${vector}"/>
</c:forEach>
上面的等价于:
for(int i=0;i<vectors.size();i++){
out.println(vectors.get(i));
}
成任意的实现了java.util.Collection接口的对象。
count=<c:out value="${i}"/><br>
</c:forEach>
count=0
count=1
.....
count=10
c:forTokens标签
delims---分割符,是个必须的属性
实例如下:
<c:forTokens items="a:b:c:d" delims=":" var="token">
<c:out value="${token}"/>
</forTokens>
url----需要导入页面的url,是个必须的属性
context----/后跟本地Web应用程序的名字,默认是当前应用程序
charEncoding----用于导入数据的字符集,默认是ISO-8859-1
var----接受导入文本的变量名,默认是page
scope----接受导入文本的变量的范围
varReader----接受导入文本的java.io.Reader变量名
varStatus----显示循环状态的变量
c:url标签---输出一个url地址
url----url地址,是个必须的属性
context----/后跟本地Web应用程序的名字,默认是当前应用程序
charEncoding----用于导入数据的字符集,默认是ISO-8859-1
var----接受处理过的url变量名,该变量存储url,默认是输出到页
scope----存储url的变量名的范围,默认是page
实例如下:
<c:import url="http://www.abc.com/abc.js" var="newsfeed" />
c:redirect标签---将请求重定向到另一个页面
url----url地址,是个必须的属性
context----/后跟本地Web应用程序的名字,默认是当前应用程序
实例如下:
<c:redirect url="http://www.abc.com/login.jsp" />
c:param标签---给一个重定向或包含页面传递参数。
name----在request参数中设置的变量名,是个必须属性
value----在request参数中设置的变量值
实例如下:
<c:redirect url="login.jsp">
<c:param name="id" value="abc">
</c:redirect>