JSTL使用
JSTL标记库由以下标记组成:
比较常用的是core和formatting标签。xml标签用于特定场景的数据显示,sql标签用于敏捷开发(j2ee开发为了分工和关注分离,往往通过dao在java代码中封装sql操作)
必须引入的jar包为:jstl.jar ,standard.jar
JSP中引入:
Core库
1.
${product.salesPrice}On sale!
${product.price}
2.
index: ${s.index}
count: ${s.count}
first: ${s.first}
last: ${s.last}
3.
%>
${item}
4.
5. :
您的用户名是:
6.
该示例将为重定向的“MyHtml.jsp”传递指定参数“userName=’RW’”
7.
8.
9.
如果
Functions库(与EL语句一起使用)
1.fn:contains函数用来判断源字符串是否包含子字符串, 其返回结果为一个 boolean 类型的值
${fn:contains("ABC","a")} ${fn: containsIgnoreCase("ABC", "a")} //忽略大小写
2. fn:endsWith函数用来判断源字符串是否符合一连串的特定词尾。它与 fn:startsWith 函数相同
${fn:endsWith("ABC","bc")}
3. fn:escapeXml函数用于将所有特殊字符转化为字符实体码
${fn:escapeXml(param:info)}
4. fn:indexOf函数用于取得子字符串与源字符串匹配的开始位置
${fn:indexOf("ABCD","aBC")}
5. 长度函数 fn:length 解决了无法通过 EL 表达式“ ${collection.size} ”来取得集合大小的问题。
<%ArrayList arrayList1 = new ArrayList();
arrayList1.add("aa");
arrayList1.add("bb");
arrayList1.add("cc");
%>
<%request.getSession().setAttribute("arrayList1",arrayList1);%>
${fn:length(sessionScope.arrayList1)}
假设一个 ArrayList 类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用 fn:length 函数后就可以取得返回结果为“ 3 ”
6. fn:replace 函数允许为源字符串做替换的工作
${fn:replace("ABC","A","B")}
7. fn:split 函数用于将一组由分隔符分隔的字符串转换成字符串数组
${fn:split("A,B,C",",")}
8. fn:substring 函数用于截取字符串
${fn:substring("ABC","1","2")}
9. fn:toLowerCase 函数允许将源字符串中的字符全部转换成小写字符
${fn:toLowerCase("ABCD")}
10. fn:trim 函数将删除源字符串中结尾部分的“空格”以产生一个新的字符串
${fn:trim("ABC ")}
至于fmt用的较少,只有
EL运算符的运用
表达式语言(Expression Language)是一种简化的数据访问方式,使用EL可以方便的以标记格式访问JSP的隐含对象和JavaBean组件。它不是一种通用的程序语言,而只是数据访问语言
转载自:我能我行的CSDN博客 http://blog.csdn.net/zxq1406spys/article/details/1875623
关系运算符(6个)
!= 或 ne 不等于 ${ 5 != 5 } 或 ${ 5 ne 5 } false
< 或lt 小于 ${ 3 < 5 }或 ${ 3 lt 5} true
> 或gt 大于 ${ 3 > 5 }或 ${ 3 gt 5} false
<= 或 le 小于等于 ${ 3 <= 5 }或 ${ 3 le 5 } true
>= 或ge 于等于 ${ 3 >= 5 }或 ${ 3 ge 5 } false
= = 或 eq 等于 ${ 5 = = 5 } 或 ${ 5 eq 5 } true
逻辑运算符(3个)
&& 或 and 交集 ${ A && B } 或 ${ A and B } true / false
|| 或 or 并集 ${ A || B } 或 ${ A or B }true / false
! 或 not 非 ${ !A } 或 ${ not A } true / false
Empty运算符 ${ empty param.name }
条件运算符 ${ A? B : C} 当A 为true 时,执行B;而A 为false 时,则执行C
最后笔者写一个ELOperator.jsp 范例,将所有运算符实际操作一遍
<%@ pagecontentType="text/html;charset=GB2312" %>
<%@ taglibprefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
运算式 | 结果 |
---|---|
14 + 3 | ${14 + 3} |
14 -3 | ${14 - 3} |
14 * 3 | ${14 * 3} |
14 / 3 | ${14 / 3} |
14 % 3 | ${14 % 3} |
14 == 3 | ${14 ==3} |
14 != 3 | ${14 !=3} |
14 < 3 | ${14 <3} |
14 > 3 | ${14 >3} |
14 <= 3 | ${14 <=3} |
14 >= 3 | ${14 >=3} |
true && false | ${true &&false} |
true || false | ${true ||false} |
! false | ${!false} |
empty username | ${emptyusername} |
empty password | ${emptypassword} |
可以参考文档:http://vdisk.weibo.com/s/hloWj