jstl标签详解

JSTL定义
  JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
    JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作

JSTL的优点
  1、 在应用程序服务器之间提供了一致的接口,最大程度地提高了WEB应用在各应用服务器之间的移植。  
 2、 简化了JSP和WEB应用程序的开发。

标签详解

一 core 标签:
1,catch 
<c:catch>动作用于捕获JSP元素在其体中抛出的异常。
示范代码:
<c:catch var="err">
         ${param.sampleSingleValue[9] == 3}
</c:catch>
${err}

2,choose
用于控制嵌套<c:when>和<c:otherwise>动作的处理。
示范代码:
<c:choose>
<c:when test="${product.onSale}"> ...</c:when>
<c:otherwise> ....</c:otherwise>
</c:choose>

3,forEach
<c:forEach>动作将其体反复计算固定次数,或者针对一个集合中的每个元素分别计算一次体。示范代码:
<c:forEach  items="${map}"  var="mymap"  >
    <c:out  value="${mymap.key}"  />
    <c:out  value="${mymap.value}"  />
</c:forEach>

4,forTokens
标签可以根据某个分隔符分隔指定字符串,相当于 java.util.StringTokenizer类。
示范代码:

<c:forTokens items="${userPhone}" delims="-" var="item">
${item}
</c:forTokens>

5,if
<c:if>动作仅当所指定的表达式计算为true时才计算其体。
示范代码:
<c:if test="${empty param.empDate}">
.....
</c:if>

6,import
标签允许包含另一个JSP页面到本页面来。示范代码:
<c:import url="/MyHtml.html" var="thisPage" />

7,otherwise
它等价于“else”语句。
示范代码:
<c:choose>
    <c:when test="${paramValues.sampleValue[2] == 11}">
        not 12 not 13,it is 11
    </c:when>
    <c:otherwise>not 11 、12、13</c:otherwise>
</c:choose>

8,out
<c:out>标签是一个最常用的标签,用于在 JSP 中显示数据。它的作用是用来替代通过JSP内 置对象out或者<%=%>标签来输出对象的值。示范代码:
<c:out value="${sessionScope.username}"/>

9,param
用于传递参数,用来为包含或重定向的页面传递参数。示范代码:
<c:redirect url="/MyHtml.jsp">
<c:param name="userName" value=”RW” />
</c:redirect>

10,redirect
可以将客户端的请求从一个 JSP 网页导向到其他文件。
示范代码:
<c:redirect url="http://java.sun.com">
   <c:param name="param" value="value"/>
</c:redirect> 

11,remove
<c:remove>标签用于删除存在于scope中的变量。类似于<%session.removeAttribute(“name”)%> 、<%request.removeAttribute(“name”)%>...
示范代码:
<c:remove var="username" scope="session"/>

12,set
<c:set>标 签用于为变量或JavaBean中的变量属性赋值的工作。这个标签用于在某个范围(page、request、session、application 等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似 于<%request.setAttrbute("name","value");%>示范代码:
<c:set value="this is andy" var="oneString"/>

13,url
主要用来产生一个URL。
示范代码:
<c:url value="http://www.javafan.net " >
<c:param name="param" value="value"/> 
</c:url> 

14,when
<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
示范代码:
<c:when test="${condition1}">
        condition1 为 true
</c:when>

二,format标签:
1,bundle
<fmt:bundle> 这签用于资源配置文件的绑定,并在页面中显示出来。示范代码:
<fmt:bundle basename="property.test">

2,formatDate
<fmt:formatDate>  标签用于格式化日期。
示范代码:
<fmt:formatDate value="${blogEntry.created}" pattern="h:mm a zz"/>

3, formatNumber
<fmt: formatNumber >  标 签用于格式化数字。
示范代码:
<fmt:formatNumber value="1000.888" type="currency" var="money"/>

4,message
用于信息显示的标签,将显示资源配置文件中定义的信息。
示范代码:
<fmt:message key="passWord" bundle="${applicationBundle}" />

5,param
<fmt:param> 标签  用于参数传递。
<fmt:param>  标签应该位于  <fmt:message>  标签内,将为该消息标签提供参数值。它只有一个属性  value  。  <fmt:param>  标签有两种使用版本,一种是直接将参数值写在  value  属性中,另一种是将参数值写在标签体内。
示范代码:
<fmt:message key="userName"/>

6,parseDate
<fmt:parseDate>  标签用于解析一个日期,并将结果作为  java.lang.Date  类型的实例返回。 
示范代码:
<fmt:parseDate var="i" type="date" value="2006-12-11" />

7,parseNumber
<fmt:parseNumber>  标签用于解析一个数字,并将结果作为  java.lang.Number  类的实例返回。
示范代码:
<fmt:parseNumber value="15%" type="percent" var="num"/>

8,requestEncoding
<fmt:requestEncoding>  标签用于为请求设置字符编码。它只有一个属性  value  ,在该属性中可以定义字符编码。示范代码:
<fmt:requestEncoding value="GB18030"/> 格式化文本编码

9,setBundle
<fmt:setBundle>  标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来进行。
示范代码:
<fmt:setLocale value="zh_CN"/>  
<fmt:setBundle basename="applicationMessage" var="applicationBundle"/> 

10,setLocale
<fmt:setLocale> 标签用于设置本地化环境。
示范代码:
<fmt:setLocale value="zh_TW"/>

11,setTimeZone
<fmt:timeZone> 、 <fmt:setTimeZone> 这两组标签都用于设定一个时区。

12,timeZone
<fmt:timeZone> 、 <fmt:setTimeZone> 这两组标签都用于设定一个时区。
示范代码:
<fmt:timeZone value="US/Eastern">
...
</fmt:timeZone>

三 functions标签


1,contains
fn:contains  函数用来判断源字符串是否包含子字符串。它包括  string  和  substring  两个参数,它们都是  String  类型,分布表示源字符串和子字符串。其返回结果为一个  boolean  类型的值。下面看一个示例。 
${fn:contains("ABC", "a")}<br>  
${fn:contains("ABC", "A")}<br>  
前者返回“  false  ”,后者返回“  true  ”。

2,containsIgnoreCase
fn:containsIgnoreCase  函数与  fn:contains  函数的功能差不多,唯一的区别是  fn:containsIgnoreCase  函数对于子字符串的包含比较将忽略大小写。
示范代码:
${fn:containsIgnoreCase("ABC", "a")}<br>  
${fn:containsIgnoreCase("ABC", "A")}<br>  
前者和后者都会返回“  true  ”。

3,endsWith
fn:endsWith  函数用来判断源字符串是否符合一连串的特定词尾。它与  fn:startsWith  函数相同,包括  string  和  subffx  两个参数,并返回一个  boolean  类型的值。示范代码。 
${fn:endsWith("ABC", "bc")}<br>  
返回 false  

4,escapeXml
fn:escapeXml  函数用于将所有特殊字符转化为字符实体码。它只包含一个  string  参数,返回一个  String  类型的值。
示范代码:
${fn:escapeXml(param:info)} 

5, indexOf
fn:indexOf  函数用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回“  -1  ”。
示范代码:
${fn:indexOf("ABCD","aBC")}
由于没有匹配成功,所以返回  -1

6, join
fn:join  函数允许为一个字符串数组中的每一个字符串加上分隔符,并连接起来。
示范代码:
<% String[] stringArray = {"a","b","c"}; %>  
<%request.getSession().setAttribute("stringArray", stringArray);%>  
${fn:join(sessionScope.stringArray,";")}

7, length
获取结果集的长度,类似java.util.Collection  接口定义了  size  方法。
示范代码:
${fn:length(sessionScope.arrayList1)}

8,replace
fn:replace  函数允许为源字符串做替换的工作。
示范代码:
${fn:replace("ABC","A","B")}<br>  
将“  ABC  ”字符串替换为“  BBC  ”,在“  ABC  ”字符串中用“  B  ”替换了“  A  ”。 

9, split
fn:split  函数用于将一组由分隔符分隔的字符串转换成字符串数组。
示范代码:
${fn:split("A,B,C",",")}
将“  A,B,C  ”字符串转换为数组  {A,B,C}  。

10,startsWith 
fn:startsWith  函数用来判断源字符串是否符合一连串的特定词头。
示范代码:
${fn:startsWith ("ABC", "ab")}<br>  
返回  false 

11,substring
fn:substring  函数用于截取字符串。它的参数、返回结果和描述。
我们经常用的呀!
示范代码:
${fn:substring("ABC","1","2")}<br>  
截取结果为“  B  ”。

12,substringBefore
fn:substringBefore  函数允许截取源字符从开始到某个字符串。
示范代码:
${fn:substringBefore("ABCD","BC")}<br>  
截取的结果为“  A  ”。

13,toLowerCase
fn:toLowerCase  函数允许将源字符串中的字符全部转换成小写字符。
示范代码:
${fn:toLowerCase("ABCD")}<br>  
转换的结果为“  abcd  ”。

14,toUpperCase
fn:toUpperCase  函数允许将源字符串中的字符全部转换成大写字符。
示范代码:
${fn:toUpperCase("abcd")}
转换的结果为“  ABCD  ”。

15,trim
fn:trim  函数将删除源字符串中结尾部分的“空格”以产生一个新的字符串。
示范代码:
${fn:trim("AB C ")}D
转换的结果为“  AB CD  ”,注意,它将只删除词尾的空格而不是全部,因此“  B  ”和“  C  ”之间仍然留有一个空格。






















你可能感兴趣的:(C++,c,jsp,应用服务器,C#)