JSTL
core标签库
使用前需要导入:<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
提供的标签:
1、<c:set> :创建域属性
> var:变量名
> value:变量值,可以是EL表达式
> scope:域,默认为page,可选值:page、request、session、application
2、<remove>:删除域变量
> var:变量名
> scope:如果不给出scope,表示删除所有域中的该名称的变量;如果指定了域,那么只删除该域的变量。
3、<c:out>:输出字符串常量,或EL表达式所选值
> value:可以是字符串常量,也可以是EL表达式
> default:当要输出的内容为null时,会输出default指定的值
> escapeXml:默认值为true,会将输出值进行转义!
4、<c:url>:指定一个路径!它会在路径前面自动添加项目名。
> value:填写指定路径
><c:param>:子标签,用来给url后面添加参数
>name:参数名
>value:参数值。
> var:指定变量名,一旦添加了这个属性,那么url标签就不会再输出到页面,而是把生成url保存到域中。
> scope:它与var一起使用,用来保存url。如:page,request
例:
<c:set>
* <c:set var="a" value="hello"/> 创建名为a,值为hello的域属性,范围:page
* <c:set var="a" value="hello" scope="session"/> 范围为session
<c:out>
* <c:out value="aaa"/> 输出字符串aaa
* <c:out value="${aaa"/> 输出域属性aaa,其中与${aaa}相同
* <c:out value="${aaa}" default="xxx"/>如果${aaa}不存在,那么输出xxx字符串
* <c:out value="${aaa}" escapeXml="true"/>如果${aaa}中包含特殊字符,那么转义它。这可以防止javascript攻击
<c:remove>
* <c:remove var="a"/> 删除名为a的域属性
* <c:remove var="a" scope="page"/> 删除page域中名为a的域属性
<c:url>
* <c:url value="/AServlet"/> 输出URL:/项目名/AServlet
* <c:url value="/AServlet" var="url" scope="page"/> 把生成的url保存到page域中,而不会输出
* <c:url value="/AServlet">:输出URL:/项目名/AServlet?username=%xx%xx%xx%xx%xx%xx,其中张三会被URL编码
<c:param name="username" value="张三"/>
</c:url/>
5、<c:if>:相当于java语句的if
<c:if test="${条件}"> 当条件为true时执行标签体内容
....
</c:if>
6、<c:choose>:相当于java语句的choose
<c:choose>
<c:when test="">...</c:when>
<c:when test="">...</c:when>
<c:when test="">...</c:when>
....
<c:otherwise> ...</c:otherwise>
</c:choose>
7、<c:forEach>:相当于java语句的foreach循环,可用来执行普通循环,遍历数组、集合。
普通循环:
属性:
* var:循环变量
* begin:设置循环变量从几开始。
* end:设置循环变量到几结束。
* step:设置步长!等同与java中的i++,或i+=2。step默认为1
for(int i = 1; i <= 10; i++) {
...
}
<c:forEach var="i" begin="1" end="10">
${i}
</c:forEach>
遍历数组、集合:
属性:
* items:指定循环数组或集合
* var:正在循环的变量
<c:forEach items="${strs }" var="str">
${str }<br/>
</c:forEach>
等同于
for(String str : strs) {
...
}
循环状态:
属性:
varStatus:循环状态名
循环状态属性:
* count:循环元素的个数
* index:循环元素的下标
* first:是否为第一个元素
* last:是否为最后一个元素
* current:当前元素
<c:forEach items="${list }" var="ele" varStatus="vs">
${vs.index} ${vs.count } ${vs.first } ${vs.last } ${vs.current }<br/>
</c:forEach>
fmt标签库
使用前需要导入:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatDate value="" pattern="">
value:指定一个Date类型的变量
pattern:用来指定输出的模板!例如:yyyy-MM-dd HH:mm:ss
--------------
<fmt:formatNumber value="${num1}" pattern="0.00">
保留小数点后2位,它会四舍五入!如果不足2位,以0补位!
<fmt:formatNumber value="${num1}" pattern="#.##">
保留小数点后2位,它会四舍五入!如果不足2位,不补位!