JSTL

   1. 1.core_Tags  
   2. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
   3. <c:set var="变量名" scope="page/session/request/application" value=""/>  
   4. <c:set var="变量名" scope="page/session/request/application">值</c:set>  
   5. <c:remove var="变量名" scope="page/session/request/application"/>  
   6. <c:out value=${}/} 从小到大的范围查找变量  
   7. **********************************************************  
   8. <c:if test="${empty var}"></c:if>  
   9. **********************************************************  
  10. <c:choose>  
  11.   <c:when test="${pageScope.var/session.var/...}"></c:when>  
  12.   <c:when test="${}"></c:when>  
  13.   <c:otherwise></c:otherwise>  
  14. </c:choose>  
  15. **********************************************************  
  16. <forEach items="包含要迭代的内容的数据结构对象"  
  17.    var="用户指定的当前正在迭代的元素"  
  18.    varStatus="当前元素的状态(count|index|first|last)" count执行的次数,index索引值,first是否为第一个,last是否为最后一个  
  19.    begin="迭代开始的位置"  
  20.    end="迭代结束的位置"  
  21.    step="迭代的步长" >  
  22. </forEach>  
  23. **********************************************************eg:  
  24. <c:forTokens items="字符串" var="当前字符串" varStatus="" delims="定界符">  
  25. </c:forTokens>  
  26. **********************************************************  
  27. <c:import uri="" var=""/>  
  28. <c:url value="">  
  29.   <c:param name="" value=""/>  
  30. </c:url>  
  31. <c:redirect url=""/>  
  32. 2.sql_Tags  
  33. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="sql"%>  
  34. 连接  
  35. <sql:setDataSource var="" dirver="" url="" user="" password=""/>  
  36. 操作  
  37. <sql:query dateSource="${}" var="结果集">select</sql:query>  
  38. <sql:update dateSource="${}">insert</sql:query>  
  39. <sql:update dateSource="${}">delete</sql:query>  
  40. 事务  
  41. <sql:transaction dataSource="">  
  42.   <sql:update var="">insert/update/delete</sql:update>  
  43.   <sql:query var="">select</sql:query>  
  44. </sql:transaction>  
  45. 显示  
  46. <c:forEach items="${结果集.rows}" var="记录" varStatus="s">  
  47.   <h1 align="center">${s.count}|${记录.dd}</h1>  
  48. </c:forEach>  
  49. **********************************************************  
  50. 3.XML_Tags  
  51. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="x"%>  
  52. <x:parse var=""></x:parse>  
  53. <x:out select=""/>  
  54. 4.Tag_files  
  55. <%@taglib tagdir="/WEB-INF/tags" prefix="tt"%>  
  56. <%@attribute name="" required="" rtexprvalue=""%>  
  57. <%@variable name-from-attribute="" alias="" scope="AT_BEGIN"%>  
  58. <c:forEach begin="" end="" varStatus="">  
  59.   <c:set var="" value=""/>  
  60.   <jsp:doBody/>  
  61. </c:forEach>  
  62. 00000000000000000000000示例0000000000000000000000000  
  63. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
  64. <br>****************if*************************  
  65. <c:if test="${empty param.user}" var="rst">  
  66.      <h1 align="center">Body</h1>  
  67. </c:if>  
  68. ${rst}  
  69. <br>****************set*************************  
  70. <c:set var="data" value="page" scope="page" />  
  71. <c:set var="data" value="request" scope="request" />  
  72. <c:set var="data" value="session" scope="session" />  
  73. <c:set var="data" value="application" scope="application" />  
  74. <c:remove var="data" scope="page"/>  
  75. <c:remove var="data" scope="request"/>  
  76. <c:remove var="data" scope="session"/>  
  77. <h1>${data}1</h1>  
  78. <h1><c:out value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" /></h1>  
  79. <h1><c:out value="${data}2" /></h1>  
  80. <h1><c:out value="${pageScope.data}3" /></h1>  
  81. <h1><c:out value="${requestScope.data}4" /></h1>  
  82. <h1><c:out value="${sessionScope.data}5" /></h1>  
  83. <h1><c:out value="${applicationScope.data}6" /></h1>  
  84. <br>****************choose*************************  
  85. <c:set var="age" value="15" scope="page"/>  
  86. <c:choose>  
  87.      <c:when test="${age < 10}">  
  88.          <h1><font color="red">  
  89.      </c:when>  
  90.      <c:when test="${age < 20}">  
  91.          <h1><font color="blue">  
  92.      </c:when>  
  93.      <c:otherwise>  
  94.          <h1><font color="black">  
  95.      </c:otherwise>  
  96. </c:choose>  
  97. Hello</font></h1>  
  98. <br>******************forEach***********************  
  99. <c:set var="name" value="20" scope="page"/>  
 100. <c:forEach begin="${age}" end="${name}" step="1" varStatus="a" var="v">  
 101.      <h1 align="center">${a.first}|${a.last}|${a.index}|${a.count}|${v}</h1>  
 102. </c:forEach>  
 103. <br>********************catch*********************  
 104. <c:catch var="e">  
 105. <%  
 106.     String str = null;  
 107.     String strstr1 = str.toLowerCase();  
 108. %>  
 109. </c:catch>  
 110. ${e}  
 111. <br>*******************forTokens**********************  
 112. <c:forTokens items="1|23|456,7,89" var="v" varStatus="a" delims=",|">  
 113.     <h1 align="center">${a.count}-${v}</h1>  
 114. </c:forTokens>  
 115. <br>*******************sql**********************  
 116. <%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>  
 117. <sql:setDataSource  driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:mumu" user="liulibo" 
password="liulibo"  
 118.          var="ds" />  
 119.          
 120. <sql:update dataSource="${ds}">  
 121.   insert into mumu(dd) values(sysdate)  
 122. </sql:update>  
 123.      
 124. <sql:transaction dataSource="${ds}">  
 125.   <sql:update>  
 126.           insert into mumu(dd) values(sysdate)  
 127.   </sql:update>  
 128. </sql:transaction>  
 129.   
 130. <sql:query dataSource="${ds}" var="rs">  
 131.   select * from mumu  
 132. </sql:query>  
 133. <c:forEach items="${rs.rows}" var="v" varStatus="s">  
 134.     <h1 align="center">${s.count}|${v.dd}</h1>  
 135. </c:forEach>  
 136. <sql:update dataSource="${ds}">  
 137.     delete from mumu  
 138. </sql:update>  
 139. *****************redirect************************  
 140. <c:if test="false">  
 141. <c:redirect url="/lookup.jsp"/>  
 142. </c:if>   

显示一个集合的长度 ${fn:length(rowList)}
判断一个集合的长度后显示集合的内容
<c:if test="${fn:length(rowList)>2}">${rowList[2]}</c:if> 

JSTL中fn表达式的使用说明
时间:2008-10-15 15:41:54  来源:  作者:
  简介    在jsp页面上经常遇到得到集合长度、字符长度、字符切取等应用需,在2.0以前这种需是许多程序员对JSTL及为不满意的地方之一。
为此在2.0 中添加了functions标签,其提供对以上需求的支持。    使用方法    引用
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
函数说明: 函数 描述
  fn:contains(string, substring) 如果参数string中包含参数substring,返回true
  fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substring(忽略大小写),返回true
  fn:endsWith(string, suffix) 如果参数 string 以参数suffix结尾,返回true
  fn:escapeXml(string) 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
  fn:indexOf(string, substring) 返回参数substring在参数string中第一次出现的位置
  fn:join(array, separator) 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
  fn:length(item) 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
  fn:replace(string, before, after) 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
  fn:split(string, separator) 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
  fn:startsWith(string, prefix) 如果参数string以参数prefix开头,返回true
  fn:substring(string, begin, end) 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
  fn:substringAfter(string, substring) 返回参数substring在参数string中后面的那一部分字符串
  fn:substringBefore(string, substring) 返回参数substring在参数string中前面的那一部分字符串
  fn:toLowerCase(string) 将参数string所有的字符变为小写,并将其返回
  fn:toUpperCase(string) 将参数string所有的字符变为大写,并将其返回
  fn:trim(string) 去除参数string 首尾的空格,并将其返回
  示例${fn.substring(string,begin,end)}
  来一个我自己测试用的代码
  <%@ page contentType="text/html;charset=gbk"%>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
  <html>
  <head>
  <title>这个是 JSTL的    测试</title>
  </head>
  <body>
  <c:set var="str" value="stringStRiNg"/>
  <c:set var="t" value="tr"/>
  <c:out value="${str} = ${fn:length(str)}"/>
  <c:out value="${fn:toLowerCase(str)}"/>
  <c:out value="${fn:toUpperCase('   ')}"/>
  <c:out value="${fn:toUpperCase('AbCdEfg')}"/><br>
  <c:out value="${fn:substring('asdfefg',0,3)}"/><br>
  <c:out value="${fn:substringAfter('asdf','s')}"/><Br>
  <c:out value="${fn:substringBefore(str,'g')}"/><Br>
  <c:out value="${fn:trim(' sd dew e ')}"/><Br>
  <c:out value=" d sd dew e "/><Br>
  <c:out value="${fn:replace(str,'ing','IN')}"/><Br>
  </body>
  </html> 

 

 

 

 

JSTL的fn函数
文章分类:Web前端

JSTL使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及session中的数据的访问非常方便,
但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的长度时,
在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错。

       因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下

      ${ns:methodName(args....)}

      在使用这些函数之前必须在JSP中引入标准函数的声明

      <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

      下面是JSTL中自带的方法列表以及其描述

函数名 	函数说明 	使用举例
fn:contains 	判断字符串是否包含另外一个字符串 	<c:if test="${fn:contains(name, searchString)}">
fn:containsIgnoreCase 	判断字符串是否包含另外一个字符串(大小写无关) 	<c:if test="${fn:containsIgnoreCase(name, searchString)}">
fn:endsWith 	判断字符串是否以另外字符串结束 	<c:if test="${fn:endsWith(filename, '.txt')}">
fn:escapeXml 	把一些字符转成XML表示,例如<字符应该转为&lt; 	${fn:escapeXml(param:info)}
fn:indexOf 	子字符串在母字符串中出现的位置 	${fn:indexOf(name, '-')}
fn:join 	将数组中的数据联合成一个新字符串,并使用指定字符格开 	${fn:join(array, ';')}
fn:length 	获取字符串的长度,或者数组的大小 	${fn:length(shoppingCart.products)}
fn:replace 	替换字符串中指定的字符 	${fn:replace(text, '-','•')}
fn:split 	把字符串按照指定字符切分 	${fn:split(customerNames, ';')}
fn:startsWith 	判断字符串是否以某个子串开始 	<c:if test="${fn:startsWith(product.id, '100-')}">
fn:substring 	获取子串 	${fn:substring(zip, 6, -1)}
fn:substringAfter 	

获取从某个字符所在位置开始的子串
	${fn:substringAfter(zip, '-')}
fn:substringBefore 	获取从开始到某个字符所在位置的子串 	${fn:substringBefore(zip, '-')}
fn:toLowerCase 	转为小写 	${fn.toLowerCase(product.name)}
fn:toUpperCase 	转为大写字符 	${fn.UpperCase(product.name)}
fn:trim 	去除字符串前后的空格 	${fn.trim(name)}

函数
	

描述

fn:contains(string, substring)
	

如果参数string中包含参数substring,返回true

fn:containsIgnoreCase(string, substring)
	

如果参数string中包含参数substring(忽略大小写),返回true

fn:endsWith(string, suffix)
	

如果参数 string 以参数suffix结尾,返回true

fn:escapeXml(string)
	

将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回

fn:indexOf(string, substring)
	

返回参数substring在参数string中第一次出现的位置

fn:join(array, separator)
	

将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。

fn:length(item)
	

返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。

fn:replace(string, before, after)
	

返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果

fn:split(string, separator)
	

返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素

fn:startsWith(string, prefix)
	

如果参数string以参数prefix开头,返回true

fn:substring(string, begin, end)
	

返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符

fn:substringAfter(string, substring)
	

返回参数substring在参数string中后面的那一部分字符串

fn:substringBefore(string, substring)
	

返回参数substring在参数string中前面的那一部分字符串

fn:toLowerCase(string)
	

将参数string所有的字符变为小写,并将其返回

fn:toUpperCase(string)
	

将参数string所有的字符变为大写,并将其返回

fn:trim(string)
	

去除参数string 首尾的空格,并将其返回
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值