Jstl表达式-c标签
Jstl表达式-c标签
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
属性 |
描述 |
value |
要输出的内容 |
default |
输出的默认值 |
escapeXml |
是否忽略XML特殊字符 |
target |
要修改的属性所属的对象 |
property |
要修改的属性 |
var |
存储信息的变量 |
scope |
var属性的作用域 |
test |
条件 |
url |
待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源 |
context |
当使用相对路径访问外部context资源时,context指定了这个资源的名字。 |
charEncoding |
所引入的数据的字符编码集 |
varReader |
可选的用于提供java.io.Reader对象的变量 |
items |
要被循环的信息 |
begin |
开始的元素(0=第一个元素,1=第二个元素) |
end |
最后一个元素(0=第一个元素,1=第二个元素) |
step |
每一次迭代的步长 |
varStatus |
代表循环状态的变量名称 |
delims |
分隔符 |
<c:out>标签用来显示一个表达式的结果,与<%= %>作用相似,它们的区别就是<c:out>标签可以直接通过"."操作符来访问属性。
实例:
<c:out value="string" default="string" escapeXml="true|false"/>
<c:set>标签用于设置变量值和对象属性。
<c:set>标签就是<jsp:setProperty>行为标签的孪生兄弟。
这个标签之所以很有用呢,是因为它会计算表达式的值,然后使用计算结果来设置 JavaBean 对象或 java.util.Map 对象的值.
如果指定了target属性,那么property属性也需要被指定
实例:
<c:set
var="string"
value="string"
target="string"
property="string"
scope="string"/>
<c:remove>标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。
这个标签不是特别有用,不过可以用来确保JSP完成清理工作。
实例:
<c:remove var="string" scope="string"/>
<c:catch> 标签主要用来处理产生错误的异常状况,并且将错误信息储存起来。
实例:
<c:catch var="<string>">
...
</c:catch>
<c:catch var ="catchException">
<% int x = 5/0;%></c:catch>
<c:if test = "${catchException != null}">
<p>异常为 : ${catchException} <br />
发生了异常: ${catchException.message}</p></c:if>
<c:if>标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。
实例:
<c:if test="boolean" var="string" scope="string">
...</c:if>
<c:choose>标签与Java switch语句的功能一样,用于在众多选项中做出选择。
switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>。
实例:
<c:choose>
<c:when test="<boolean>"/>
...
</c:when>
<c:when test="<boolean>"/>
...
</c:when>
...
...
<c:otherwise>
...
</c:otherwise>
</c:choose>
<c:import>标签提供了所有<jsp:include>行为标签所具有的功能,同时也允许包含绝对URL。
举例来说,使用<c:import>标签可以包含一个FTP服务器中不同的网页内容。
实例:
<c:import
url="string"
var="string"
scope="string"
varRender="string"
context="string"
charEncoding="string"/>
这些标签封装了Java中的for,while,do-while循环。
相比而言,<c:forEach>标签是更加通用的标签,因为它迭代一个集合中的对象。
实例:
<c:forEach
items="object"
begin="int"
end="int"
step="int"
var="string"
varStatus="string"></c:forEach>
<c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。
<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性
实例:
<c:forTokens
items="string"
delims="string"
begin="int"
end="int"
step="int"
var="string"
varStatus="string"></c:forTokens>
<c:forTokens items="google,runoob,taobao" delims="," var="name">
<c:out value="${name}"/><p>
</c:forTokens>
<c:param>标签用于在<c:url>标签中指定参数,而且与URL编码相关。
在<c:param>标签内,name属性表明参数的名称,value属性表明参数的值。
实例:
<c:param name="<string>" value="<string>"/>
name:URL中要设置的参数名称
value:参数的值
<c:url var="myURL" value="main.jsp">
<c:param name="name" value="Runoob"/>
<c:param name="url" value="www.runoob.com"/>
</c:url>
<a href="/<c:out value="${myURL}"/>">
<c:redirect>标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签。
实例:
<c:redirect url="<string>" context="<string>"/>
<c:url>标签将URL格式化为一个字符串,然后存储在一个变量中。
这个标签在需要的时候会自动重写URL。
var属性用于存储格式化后的URL。
<c:url>标签只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数。
实例:
<c:url
var="<string>"
scope="<string>"
value="<string>"
context="<string>"/>