JSP标准库标签 ———C标签
目的:简化JSP页面
通常我们编写代码在jsp页面中需要判断或者循环时,需要用到c标签,比如<c:if>、<c:forEach>
那么我们就需要在jsp页面中添加这行代码,才能提示出代码
**<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>**
接下来的是核心标签库的标签:
标签 描述
<c:out>: 类似于java表达式,但是表达式。
<c:set>: 在某个范围内设置表达式的值。
<c:remove>: 删除一个域变量(从一个特殊的被指定的范围)。
<c:catch>: 抛出任何发生在它的主体中的异常,并且有选择的公开它。
<c:if>: 简单的条件标签,如果提供的条件是true,则执行标签体的内容。
<c:choose>: 简单的条件标签,用标签和建立一个互斥条件操作的上下文。
<c:when>: 简单的子标签,如果它的条件为“true”,则运行标签体的内容。
<c:otherwise>: 简单的子标签,它出现在标签之后,只有当先前的条件结果为“false”运行它。
<c:import>: 检索绝对或相对的URL并且显示它的内容到其他的页面,在“var”中的一个String类型,或者在“varReader”中的一个Reader类型。
<c:forEach>: 基本的迭代标签,接受多种不同的集合类型,支持子集和其他的功能。
<c:forTokens>: 迭代使用分隔符,分隔提供的定界符。
<c:param>: 添加一个参数到包含“import”标签的URL。
<c:redirect>: 重新定向到的一个新的URL。
<c:url>: 创建一个带有选项查询参数的URL。
标签详解:http://www.cnblogs.com/EasonJim/p/6958979.html
通用标签:
1、 <c:out value=“…” default=“…” escapeXml=“true”>
escapeXml:将value中的特殊符号进行转义。如果不指定为false,那么默认值为true。
value:输出到浏览器中的值
default:value值找不到时的默认值
例:
<c:out value="hello word!" />
<%
pageContext.setAttribute("username", "jack");
%>
<br />
用户名:<c:out value="${username}" /> <br />
用户名:<c:out value="${fdusername}" default="未知"/> <br />
链接:<c:out value="<a href='#'>下载</a>" escapeXml="false" /> <br />
链接:<c:out value="<a href='#'>下载</a>" escapeXml="true" /> <br />
链接:<c:out value="<a href='#'>下载</a>" /> <br/>
2、<c:set var/value/scope/target/property>
var: 有两成含义。变量名 和 存入域对象的名称。
target和property是针对于javaBean的。
例:
<c:set var="name" value="杰克" scope="page"/>
<c:out value="${name}" /> <br />
<jsp:useBean />
<c:set target="${user}" property="userName" value="jack" />
<c:out value="${user.userName}" /> <br />
<%
Map<String, Integer> map = new HashMap<String, Integer>();
pageContext.setAttribute("map", map);
%>
<c:set target="${map}" property="key" value="jack"/>
<c:set target="${map}" property="value" value="7000"/>
<c:out value="${map.key}" /> <br />
<c:out value="${map.value}" />
3、<c:remove />
<c:remove var=“varName” [scope=“{page|request|session|application}”]>
例:
<c:set var="name" value="jack" scope="page" />
<c:out value="${name}" default="未知" />
<c:remove var="name" scope="page"/>
<c:out value="${name}" default="未知" />
4、<c:catch var=“…”>
…可能出错的代码
</c:cath>
var:会将错误信息封装在此
例:
<c:catch var="message">
<%
int a = 10/0;
%>
</c:catch>
<c:out value="${message}" default="无异常!" />
5、<c:if var/test/scope >
var:保存test属性的结果。true or false
test:布尔值决定是否处理标签体中的内容
scope:将test属性的结果保存到哪个域对象中。
例:
<c:if test="${25>16}" var="flag" scope="request">
25>16
</c:if>
<jsp:forward page="value.jsp" />
6、<c:choose>
<c:when test=“…”>
。。。
</c:when>
<c:otherwise>
。。。
</c:otherwise>
</c:choose>
例:
<c:choose>
<c:when test="${param.age > 16}">
你成年了
</c:when>
<c:otherwise>
你还未成年
</c:otherwise>
</c:choose>
**${param.age} 得到地址栏参数age的值
7、c:forEach var/items/varStatus/begin/end/step> … </c:forEach>
var:将当前迭代到的元素保存到page这个域对象中的属性名称
items:要进行迭代的的集合对象
varStatus:是个page域对象。保存着此时迭代的信息。
属性:first:是否为第一个(true or false) index:当前下标
count:计数 end:是否为最后一个(true or false)
<%
List<String> list = new ArrayList<String>();
list.add("jack");
list.add("merry");
list.add("berry");
list.add("xixi");
list.add("sisi");
request.setAttribute("list", list);
%>
<c:forEach var="item" items="${list}" varStatus="status">
${status.index} - ${item} - ${status.first} - ${status.last} - ${status.count} <br />
</c:forEach