一、核心标签库
1、 out输出语句,仅对表达式有效
<c:out value="{'helloWorld'}" />
2、set语句,设置表达式的值
<c:set var = "helloWorld" scope = "session" value = "{"helloWorld"}" />
3、remove语句,删除范围变量
<c:remove var = "helloWorld" />
4、if判断语句
<c:set var="salary" scope="session" value="${2000*2}"/>
<c:if test="${salary > 2000}">
<p>我的工资为: <c:out value="${salary}"/><p>
</c:if>
5、catch 异常检测语句
<c:catch var = "catchException" />
<% int x = 6/0; %>
</c:catch>
<c:if test = "${catchException != null}">
<p>
异常为: ${catchException} <br />
详细信息为: ${catchException.message}
</p>
</c:if>
执行结果为:异常为 : java.lang.ArithmeticException: / by zero 详细信息为: / by zero
6、when语句,条件判定选择
<c:set var="salary" scope="session" value="${2000*2}"/>
<p>你的工资为 : <c:out value="${salary}"/></p>
<c:choose>
<c:when test="${salary <= 0}">
太惨了。
</c:when>
<c:when test="${salary > 1000}">
不错的薪水,还能生活。
</c:when>
<c:otherwise>
什么都没有。
</c:otherwise>
</c:choose>
输出内容为:你的工资为:4000 不错的薪水,还能生活。
7、foreach基础迭代,可以接受多种集合类型
<c:forEach var="i" begin="1" end="5">
Item <c:out value="${i}"/><p>
</c:forEach>
8、创建url并给包含或重定向的页面传递参数
<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:param> 为指定URL发送两个参数。
</a>
二、格式化标签库
9、fmt:formatNumber 格式化数字
<c:set var="balance" value="120000.2309" />
<p>格式化数字 (1): <fmt:formatNumber value="${balance}"
type="currency"/></p>
<p>格式化数字 (2): <fmt:formatNumber type="number"
maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (3): <fmt:formatNumber type="number"
maxFractionDigits="3" value="${balance}" /></p>
<p>格式化数字 (4): <fmt:formatNumber type="number"
groupingUsed="false" value="${balance}" /></p>
<p>格式化数字 (5): <fmt:formatNumber type="percent"
maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (6): <fmt:formatNumber type="percent"
minFractionDigits="10" value="${balance}" /></p>
<p>格式化数字 (7): <fmt:formatNumber type="percent"
maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (8): <fmt:formatNumber type="number"
pattern="###.###E0" value="${balance}" /></p>
运行如下:
数字格式化:
格式化数字 (1): ¥120,000.23
格式化数字 (2): 000.231
格式化数字 (3): 120,000.231
格式化数字 (4): 120000.231
格式化数字 (5): 023%
格式化数字 (6): 12,000,023.0900000000%
格式化数字 (7): 023%
格式化数字 (8): 120E3
10、fmt:parseDate日期解析
<c:set var="now" value="20-10-2015" />
<fmt:parseDate value="${now}" var="parsedEmpDate"
pattern="dd-MM-yyyy" />
<p>解析后的日期为: <c:out value="${parsedEmpDate}" /></p>
输出为:
日期解析:
解析后的日期为: Tue Oct 20 00:00:00 CST 2015
三、SQL标签库
11、sql:setDataSource 数据库语句
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/TEST"
user="user_id" password="mypassword"/>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from Employees;
</sql:query>
然后可以进行迭代输出
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.first}"/></td>
<td><c:out value="${row.last}"/></td>
<td><c:out value="${row.age}"/></td>
</tr>
</c:forEach>
PS:更新语句如下:
<sql:update dataSource="${snapshot}" var="count">
INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali');
</sql:update>
PS:给sql语句设置参数:
<c:set var="empId" value="103"/>
<sql:update dataSource="${snapshot}" var="count">
DELETE FROM Employees WHERE Id = ?
<sql:param value="${empId}" />
</sql:update>
四、JSTL函数
12、检测输入字符是否包含指定字符串
<c:set var="theString" value="I am from runoob"/>
<c:if test="${fn:contains(theString, 'runoob')}">
<p>找到 runoob<p>
</c:if>
<c:if test="${fn:contains(theString, 'RUNOOB')}">
<p>找到 RUNOOB<p>
</c:if>
13、检测字符串是否已指定内容结束
<c:set var="theString" value="I am from runoob 123"/>
<c:if test="${fn:endsWith(theString, '123')}">
<p>字符串以 123 结尾<p>
</c:if>
<c:if test="${fn:endsWith(theString, 'unoob')}">
<p>字符串以 runoob 结尾<p>
</c:if>
14、返回指定字符串在输入字符串的位置(从零开始,计算空格)
<c:set var="string1" value="This is first String."/>
<c:set var="string2" value="This <abc>is second String.</abc>"/>
<p>Index (1) : ${fn:indexOf(string1, "first")}</p>
<p>Index (2) : ${fn:indexOf(string2, "second")}</p>
15、fn:join()函数将一个数组中的所有元素使用指定的分隔符来连接成一个字符串
<c:set var="string1" value="www baidu com"/>
<c:set var="string2" value="${fn:split(string1, ' ')}" />
<c:set var="string3" value="${fn:join(string2, '-')}" />
<p>字符串为 : ${string3}</p>
输出内容为:字符串为 : www-baidu-com
PS:fn:split函数返回一个字符串用指定分隔符分裂为一个子串数组。
16、返回字符串长度
<c:set var="string1" value="This is first String."/>
<c:set var="string2" value="This is second String." />
<p>字符串长度 (1) : ${fn:length(string1)}</p>
<p>字符串长度 (2) : ${fn:length(string2)}</p>
17、replace 将输入字符串中指定的位置替换为指定的字符串然后返回
<c:set var="string1" value="I am from google"/>
<c:set var="string2" value="${fn:replace(string1,
'google', 'runoob')}" />
<p>替换后的字符串 : ${string2}</p>
18、startWith 亿指定字符串开始
<c:set var="string" value="Runoob: I am from Runoob."/>
<c:if test="${fn:startsWith(string, 'Google')}">
<p>字符串以 Google 开头</p>
</c:if>
<br />
<c:if test="${fn:startsWith(string, 'Runoob')}">
<p>字符串以 Runoob 开头</p>
</c:if>
输出内容为:字符串以 Runoob 开头
19、substring 截取字符串
<c:set var="string1" value="This is first String."/>
<c:set var="string2" value="${fn:substring(string1, 5, 15)}" />
<p>生成的子字符串为 : ${string2}</p>
输出内容为:生成的子字符串为 : is first S
20、所有字符转换为大写或小写
<c:set var="string1" value="I am from RUNOOB"/>
<c:set var="string2" value="${fn:toLowerCase(string1)}" />
<p>字符串为 : ${string2}</p>
输出内容为:字符串为 : i am from runoob
<c:set var="string1" value="I am from runoob"/>
<c:set var="string2" value="${fn:toUpperCase(string1)}" />
<p>字符串为 : ${string2}</p>
输出内容为:字符串为 : I AM FROM RUNOOB
21、trim去除两端的空格
<c:set var="string1" value="I am from runoob "/>
<p>string1 长度 : ${fn:length(string1)}</p>
<c:set var="string2" value="${fn:trim(string1)}" />
<p>string2 长度 : ${fn:length(string2)}</p>
<p>字符串为 : ${string2}</p>
输出内容为:
string1 长度 : 25
string2 长度 : 16
字符串为 : I am from runoob
也欢迎登录我的个人网站,里面有更多的文章及技术咨询在等你:http://www.guangmuhua.com