c-fmt-fn标签用法

CreateTime--2017年1月6日15:48:43

Author:Marydon

一、参考链接

  http://blog.csdn.net/fmwind/article/details/46238485

二、概述

JSLT标签库
  全名为JavaServer Pages Standard Tag Library,它主要提供给Java Web开发人员一个标准通用的标签函数库。
  Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性、维护性和方便性
  注意:
    在eclipse中使用,需添加JSLT jar包:jstl.jar和standard.jar
  JSP页面常用的三个JSLT标签

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

三、<c:> 核心标签库

  在JSP页面中要使用到核心标签,需要引入下面的语句:

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

  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:
    1.表达式控制标签:out、set、remove、catch
    2.流程控制标签:if、choose、when、otherwise
    3.循环标签:forEach、forTokens
    4.URL操作标签:import、url、redirect
    注意:
      标签属性默认值不为空的,即使不声明,系统也会默认的给该标签添加上该属性,要想改变默认的属性对应的值,需声明属性并赋值
---------------------------------------------------<c:forEach></c:forEach>---------------------------------------------------
  用途:对集合(Collection)进行遍历或迭代控制。
  语法:

<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
本体内容
</c:forEach>

  举例:

<c:forEach var="row" items="${model.data}" varStatus="s">
  <i:tr onclick="javascript:RowSelect(this);">
    <!-- 利用索引号当行号 -->
    <i:td clazz="TableCellIndex"><c:out value="${s.index+1}"></c:out></i:td>
    <i:td>
      <fmt:formatDate value="${row.BEGINDATE}" pattern="yyyy-MM-dd" />
    </i:td>
    <i:td>${row.FMCARD}</i:td>
  </i:tr>
</c:forEach>

  属性说明:

名称 说明 EL 类型 必须 默认值
var  存放现在所指的成员 N  String N
items 被迭代的集合对象 Y Arrays,Collection,Iterator,Enumeration,Map,String N
varStatus 存放现在所指的相关成员信息 N String N
begin 指定迭代的开始位置 Y int N 0
end 指定迭代的结束位置 Y int N 最后一个成员
step 每次迭代的间隔数 Y int N 1

  

  其中,varStatus属性提供了另外四个属性:index,count,fist和last,说明如下:

 名称  类型  说明
 index  number  现在指到的成员的索引(索引号从"0"开始)
 count  number  总共指到的成员的总和
 first  boolean  现在指到的成员是否为第一个
last boolean 现在指到的成员是否为最后一个

  

  UpdateTime--2017年3月3日11:12:13
  AddContent:新增<c:forTokens></c:forTokens>标签用法
-----------------------------------------<c:forTokens></c:forTokens>标签---------------------------------------------------
  <c:forTokens>的用法和<c:forEach>用法一样,不同的就是:该标签比forEach标签多一个属性"delims",可以使用指定分隔符对字符串进行分割,可同时拥有多个分割字符,如:要按"|"和","进行分割,则写成delims="|,"
  举例:

<c:forTokens items="${data.b04_02_05 }" delims="," var="num">
  <c:if test="${num==1}">无症状</c:if>
  <c:if test="${num==2}">多饮</c:if>
  <c:if test="${num==3}">多食</c:if>
  <c:if test="${num==4}">多尿</c:if>
  <c:if test="${num==5}">视力模糊</c:if>
  <c:if test="${num==6}">感染</c:if>
  <c:if test="${num==7}">手脚麻木</c:if>
  <c:if test="${num==8}">下肢浮肿</c:if>
  <c:if test="${num==9}">其他</c:if>
  <c:if test="${num==10}">体重明显下降</c:if>
</c:forTokens>

----------------------------------------------------<c:out></c:out>标签----------------------------------------------------

  用途:主要用来显示数据的内容
  语法1:

<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] /> 

  语法2:

<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>

  举例:

<input name="FRCODENAME" value="<c:out value='${model.FRCODENAME}'/>" type="hidden">
<i:td><c:out value="${row.FMCARD}"></c:out></i:td>

  属性说明:

名称 类型 说明 默认值
escapeXml boolean 将<、>、’、” 和 & 转换为&lt;、&gt;、'、" 和&amp; true
default Object 如果value的值不存在时,会输出默认值

  

注意:
   <c:out>默认会将"<"、">"、空格和"&"等转换为转义字符: &lt;、&gt;、'、" 和&amp;。假若不想转换时,需要声明<c:out>的escapeXml属性为fasle
------------------------------------------------------------<c:set></c:set>标签--------------------------------------------
  用途:主要用来将变量储存至JSP范围中或是JavaBean的属性中。
  语法1:将value的值储存至范围为scope的 varName 变量之中

<c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>

  语法2:将本体内容的数据储存至范围为scope的 varName 变量之中

<c:set var="varName" [scope="{ page|request|session|application }"]>
  … 本体内容
</c:set>

  语法3:将 value的值储存至 target 对象的属性中

<c:set value="value" target="target" property="propertyName" /> 

  语法4:将本体内容的数据储存至target 对象的属性中

<c:set target="target" property="propertyName">
… 本体内容
</c:set>

  举例:

<c:set var="totalPrice2">${totalPrice+row.FMONEY}</c:set>

<c:set var="totalPrice2" value="${totalPrice+row.FMONEY}"/>
相当于使用“小脚本赋值”
<%
  request.setAttribute("totalPrice2","${totalPrice+row.FMONEY}");
%>

  与之对应的获取方式:

    EL表达式获取

${totalPrice2}

    小脚本获取 

<%
  String value = request.getAttribute("totalPrice2");
%>

  属性说明:

名称 说明 EL 类型 必须 默认值
value 要被储存的值 Y Object N
var 要存入的变量名称 N String N
scope var变量的JSP范围 N String N page
target javaBean或Map对象 Y Object N
property 指定target对象的属性 Y String N

------------------------------------------------<c:remove></c:remove>标签------------------------------------------------
  用途:主要用来移除变量。
  语法:

<c:remove var="varName" [scope="{ page|request|session|application }"] /> 

--------------------------------------------------<c:catch></c:catch>标签--------------------------------------------------

  用途:主要用来处理产生错误的异常状况,并且将错误信息储存起来。
  语法:

<c:catch [var="varName"] >
  … 欲抓取错误的部分
</c:catch>

------------------------------------------------------<c:if></c:if>标签------------------------------------------------------

  用途:和我们一般在程序中用的if一样
  语法1:有本体内容(常用)

<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
  本体内容
</c:if>

  语法2:没有本体内容

<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>

  举例:

<!-- 如果问号传参的省级级别限制=1则选中“可报”;否则选中“不可报” -->
<option value="1" <c:if test="${param.FPROVLEVELLIMIT=='1'}">selected="selected"</c:if>>
  可报
</option>
<option value="0"
  <c:if test="${param.FPROVLEVELLIMIT=='0'}">selected="selected"</c:if>>
  不可报
</option>

  CreateTime--2016年12月20日19:39:27

  <c:if>标签的使用:
    实现当"${model.FLEVEL > 3}"时,input文本框添加点击事件

<!-- 方法一 -->
<input type="text" name="FORGNAME" id="FORGNAME" style="width: 100px;" class="TextBox" value="<c:out value="${model.FORGNAME}"/>" readonly="true"
  <c:if test="${model.FLEVEL > 3}">
    onclick="policy.queryFORGINFO('${model.FORGID}',event)"/>
  </c:if>
/>
<!-- 方法二 -->
<c:if test="${model.data.FLEVEL == 3}">
  <input class="TextBox" id="FORGIDNAME" readonly="readonly" value="<c:out value="${model.data.FORGNAME}"></c:out>"/>
</c:if>
<c:if test="${model.data.FLEVEL != 3}">
  <input class="TextBox" id="FORGIDNAME" readonly="readonly" value="<c:out value="${model.data.FORGNAME}"></c:out>"
    onclick="tyearjcmpolset.queryFORGINFO('${model.data.FORGID}',event)" />
</c:if>

  注意:

    <c:if>标签可以直接用在input的标签上,做好格式化即可
----------------------<c:choose><c:when><c:otherwise></c:choose></c:when></c:otherwise>标签----------------------

  举例:

<c:choose>
  <c:when test="${score>=90">优</c:when>
  <c:when test="${score>=60&&score<90}">及格</c:when>
  <c:otherwise>不及格</c:otherwise>
</c:choose>

----------------------------------------------------<c:url></c:url>标签-----------------------------------------------------

  用途:获取项目的根路径
  语法:
    <c:url value="路径"/>
  注意:
    value的值不能为空,且要以"/"开头
  举例:

//这种引用方式相当于采取了“绝对路径”的方式引用文件
<script type="text/javascript" src="<c:url value="/commons/js/util/drag.js"/>"></script>

----------------------------------------------------------综合运用----------------------------------------------------------

  UpdateTime--2017年1月12日16:10:42
  综合运用一:<c:set>和<c:if>
    本页面设值

<c:if test="${param.type == '1'}">
  <c:set var="biaoti" scope="page">门诊补偿多功能查询</c:set>
</c:if>
<c:if test="${param.type == '2'}">
  <c:set var="biaoti" scope="page">慢性病补偿多功能查询</c:set>
</c:if>
<c:if test="${param.type == '3'}">
  <c:set var="biaoti" scope="page">门诊重大疾病补偿多功能查询</c:set>
</c:if>
<c:if test="${param.type == '4'}">
  <c:set var="biaoti" scope="page">门诊日间手术补偿多功能查询</c:set>
</c:if>

    优化:

<c:set var="biaoti" scope="page">
  <c:if test="${param.type == '1'}">
    门诊补偿多功能查询
  </c:if>
  <c:if test="${param.type == '2'}">
    慢性病补偿多功能查询
  </c:if>
  <c:if test="${param.type == '3'}">
    门诊重大疾病补偿多功能查询
  </c:if>
  <c:if test="${param.type == '4'}">
    门诊日间手术补偿多功能查询
  </c:if>
</c:set>

    本页面取值

${pageScope.biaoti}<!-- pageScope可加,可不加 -->

四、<fmt:>格式化标签库

  JSTL格式化标签又称为I18N标签库,主要用来编写国际化的WEB应用,使用此功能可以对一个特定的语言请求做出合适的处理

  例如:

    中国内地用户将显示简体中文,台湾地区则显示繁体中文,使用I18N格式化标签库还可以格式化数字和日期,例如同一数字或日趋,在不同国家可能有不同的格式,使用I18N格式标签库可以将数字和日期格式为当地的格式。

  在JSP页面中要使用到格式化标签,需要引入下面的语句:

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

  格式化标签

<fmt:fromatNumber>
<fmt:formatDate>
<fmt:parseDate>
<fmt:parseNumber>
<fmt:setTimeZone>
<fmt:timeZone>

  国际化标签

<fmt:setLocale>
<fmt:requestEncoding>
<fmt:bundle>
<fmt:message>
<fmt:param>
<fmt:setBundle>

--------------------------------------<fmt:formatNumber></fmt:formatNumber>标签-------------------------------------

  用途:将数字格式化成数字,货币,百分比。
  此标签的属性:

属性名 作用
value 要格式化的数字
type 按照什么类型格式化,number(数字,默认值),currency(货币),percent(百分比)
pattern 自定义格式化样式
maxIntegerDigits 整数部分最多显示多少位
mixIntegerDigits 整数部分最少显示多少位
maxFractionDigits 小数部分最多显示多少位
minFractionDigits 小数部分最少显示多少位
var 存储格式化后的结果
currencyCode ISO-4721货币代码,只适用于按照货币格式化的数字
currencySymbol 货币符号,如¥,只适用于按照货币格式化的数字
groupingUsed 是否包含分隔符
scope 存储的范围

  注意:
    格式化会遵循四舍五入的原则
  举例:

<!-- 使显示的数据只保留两位小数 pattern="0.00"或"#0.00" -->
<fmt:formatNumber pattern="#0.00" value="456"></fmt:formatNumber>
  显示结果:456.00
<!-- 使显示的数据只保留整数 pattern="0"或"#0" -->
<fmt:formatNumber pattern="#0" type="number" value="456.57"></fmt:formatNumber>
  显示结果:457

---------------------------------------<fmt:parseNumber></fmt:parseNumber>标签--------------------------------------
  用途:此标签用来将字符串类型的数字,货币或百分比转换成数字类型,和<fmt:formatNumber>标签的作用正好相反.
  此标签的属性:

属性名 作用
value 要转换的字符串
type 指定要转换的字符串为什么类型,可取值:number,percent,currency
pattern 自定义格式化样式
parseLocale 指定区域来转换字符串
IntegerOnly 转换后的数字是否只显示整数部分
var 存储转换后的结果
scope 存储的范围
示例1:
  <fmt:parseNumber value="500,800,200"/>
  显示: 500800200
示例2:
  <fmt:parseNumber value="52%" type="percent" />
  显示: 0.52 (52%在这里是一个字符串, type指定这个字符串是什么类型的值)
示例3:
  <fmt:parseNumber value="¥123" type="currency" />
  显示:123, ¥123在这里是一个字符串, type指定这个字符串是什么类型的值
示例4:
  <fmt:parseNumber value="123.333" type="number" /><br/>
  <fmt:parseNumber value="123.333" type="number" integerOnly="true"/><br/>
  显示:
    123.333
    123

-----------------------------------------<fmt:formatDate></fmt:formatDate>标签---------------------------------------
  用途:此标签可以将日期格式化
  属性介绍:

属性名 作用
value 用来格式化的时间或日期
type 指定格式化的是日期还是时间,或者两者都是取值范围:date,time,both
pattern 自定义格式化样式
dateStyle 日期的格式化样式,取值:default, short, medium, long, full
timeStyle 时间的格式化样式,取值:default, short, medium, long, full
timeZone 指定使用的时区,取值:EST, CST, MST, PST
var 存储格式化后的结果
scope 指定存储的范围

  注意:
    1.type属性的可取值及意义:
      date 只格式化日期部分
      time 只格式化时间部分
      both 格式化日期和时间
    2.hh表示12小时制, HH代表24小时制
  CreateTime--2016年9月29日10:22:11
  用法:
  第2步:获取系统当前时间

<jsp:useBean id="now" class="java.util.Date"></jsp:useBean>

  第3步:使用<fmt:formatDate/>标签进行格式化
  <1>日期

<fmt:formatDate value="<%=new Date()%>" type="both"/><br/>     <!-- 2016-9-29 10:14:35 -->
<fmt:formatDate value="${now}" type="date" dateStyle="default"/><br/> <!-- 2016-9-29 -->
<fmt:formatDate value="${now}" type="date" dateStyle="short"/><br/> <!-- 16-9-29 -->
<fmt:formatDate value="${now}" type="date" dateStyle="medium"/><br/> <!-- 2016-9-29 -->
<fmt:formatDate value="${now}" type="date" dateStyle="long"/><br/> <!-- 2016年9月29日 -->
<fmt:formatDate value="${now}" type="date" dateStyle="full"/><br/> <!-- 2016年9月29日 星期四 -->

  <2>时间

<fmt:formatDate value="${now}" type="time"/><br/><!-- 10:14:35 -->
<fmt:formatDate value="${now}" type="time" timeStyle="default"/><br/> <!-- 10:14:35 -->
<fmt:formatDate value="${now}" type="time" timeStyle="short"/><br/> <!-- 上午10:14 -->
<fmt:formatDate value="${now}" type="time" timeStyle="medium"/><br/> <!-- 10:14:35 -->
<fmt:formatDate value="${now}" type="time" timeStyle="long"/><br/> <!-- 上午10时14分35秒 -->
<fmt:formatDate value="${now}" type="time" timeStyle="full"/><br/> <!-- 上午10时14分35秒 CST -->

  <3>整合

<fmt:formatDate value="${now}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss"/><br/>
<!-- 星期四, 九月 29, 2016 10:14:35 -->
<fmt:formatDate value="${now}" type="both" pattern="d MMM yy, h:m:s a zzzz"/>
<!-- 29 九月 16, 10:14:35 上午 中国标准时间 --> <script type="text/javascript"> var str='${h.createTime}'; document.write(str.split(" ")[0]);</script>

------------------------------------------<fmt:parseDate></fmt:parseDate>标签-----------------------------------------
  用途:将字符串类型的时间转换为日期类型
  属性介绍:

属性名 作用
value 用来格式化的时间或日期
type 指定格式化的是日期还是时间,或者两者都是取值范围:date,time,both
pattern 自定义格式化样式
dateStyle 日期的格式化样式,取值:default, short, medium, long, full
timeStyle 时间的格式化样式,取值:default, short, medium, long, full
timeZone 指定使用的时区,取值:EST, CST, MST, PST
var 存储格式化后的结果
scope 指定存储的范围

---------------------------------------<fmt:setTimeZone></fmt:setTimeZone>标签--------------------------------------
  用途:设定默认时区
  属性介绍:

属性 作用
value 设定时区,取值:EST,CST,MST,PST
var 存储设定的时区
scope 存储的范围

-------------------------------------------<fmt:timeZone></fmt:timeZone>标签-----------------------------------------
  用途:用来暂时设置时区
  属性介绍:

属性 作用
value 设定时区,取值:EST,CST,MST,PST

  注意:
    此标签的时区只是部分,在标签开始至标签结束内有效,其它地方无效,其它地方还是会使用默认时区


五、<fn:> Function标签库

  JSTL Functions 标签库中提供了一组常用的EL函数,主要用于处理字符串,在JSP中可以直接使用这些函数。

  在JSP文件中使用Functions标签库,要先通过taglib指令引入该标签库:

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

-----------------------------------------------------fn:contains 函数-----------------------------------------------------
  用途:判断在源字符串中是否包含目标字符串
  语法:
    fn:contains(String source,String target) -------boolean;
    source -->指定源字符串;
    target -->指定目标字符串;
    返回类型为 boolean.
  举例:
    ${fn:contains("Tomcat","cat")} -->结果:true
    ${fn:contains("Tomcat","CAT")} -->结果:false
------------------------------------------------fn:containsIgnoreCase 函数----------------------------------------------
  用途:判断在源字符串中是否包含目标字符串,并且在判断时忽略大小写
  语法:
    fn: containsIgnoreCase (String source,String target) -------boolean;
    source -->指定源字符串;
    target -->指定目标字符串;
    返回类型为 boolean.
  举例:
    ${fn:containsIgnoreCase("Tomcat","CAT")} -->结果:true
    ${fn:containsIgnoreCase("Tomcat","Mike")} -->结果:false
----------------------------------------------------fn:startsWith 函数---------------------------------------------------
  用途:判断源字符串是否以指定的目标字符串开头
  语法:
    fn:startsWith(String source,String target) -------boolean;
    source -->指定源字符串;
    target -->指定目标字符串;
    返回类型为 boolean.
  举例:
    ${fn:startsWith("Tomcat","Tom")} -->结果:true
    ${fn:startsWith("Tomcat","Mike")} -->结果:false
-----------------------------------------------------fn:endsWith 函数---------------------------------------------------
  用途:判断源字符串是否以指定的目标字符串结尾
  语法:
    fn:endsWith(String source,String target) -------boolean;
    source -->指定源字符串;
    target -->指定目标字符串;
    返回类型为 boolean.
  举例:
    ${fn:endsWith("Tomcat","cat")} -->结果:true
    ${fn:endsWith("Tomcat","Tom")} -->结果:false
----------------------------------------------------fn:indexOf 函数------------------------------------------------------
  用途:在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引,如果在源字 符串中不包含目标字符串,就返回 -1 ,源字符串中的第一个字符的索引为 0 。
  语法:
    fn:indexOf(String source,String target) -------int;
    source -->指定源字符串;
    target -->指定目标字符串;
    返回类型为 int.
  举例:
    ${fn:indexOf("Tomcat","cat")} -->结果: 3
    ${fn:indexOf("2211221","21")} -->结果: 1
    ${fn:indexOf("Tomcat","Mike")} -->结果:-1
-----------------------------------------------------fn:replace 函数-----------------------------------------------------
  用途:把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。
  语法:
    fn:replace(String source,String before,String after) -------String;
    source -->指定源字符串;
    before -->指定源字符串中要被替换的子字符串;
    after -->指定用于替换的子字符串
    返回类型为 String.
  举例:
    ${fn:replace("TomcAt","cAt","cat")} -->结果:"Tomcat"
    ${fn:replace("2008/1/9","/","-")} -->结果:"2008-1-9"
----------------------------------------------------fn:substring 函数---------------------------------------------------
  用途:获取源字符串中的特定子字符串
  语法:
    fn:substring(String source,int beginIndex,int endIndex) -------String;
    source -->指定源字符串;
    beginIndex -->表示子字符串中的第一个字符在源字符串中的索引;
    endIndex -->表示子字符串的最后一个字符在源字符串中的索引加 1;
    返回类型为 String
  注意:
    1.源字符串中的第一个字符的索引为 0 ;
    2.左包含,右不包含,即:[beginIndex,endIndex)
  举例:
    ${fn:substring(row.FITEMNAME,0,10)} -->截取的是前10个字符,即[0,10)
    ${fn:substring("Tomcat",0,3)} -->结果:"Tom"
    ${fn:substring("Tomcat",3,6)} -->结果:"cat"
-------------------------------------------------fn:substringBefore 函数-----------------------------------------------
  用途:获取源字符串中指定目标子字符串之前的子字符串
  语法:
    fn:substringBefore(String source,String target) -------String;
    source -->指定源字符串;
    target -->指定目标子字符串;
    返回类型为 String
  注意:
    如果在源字符串中不包含特定子字符串,就返回空字符串。
  举例:
    ${fn:substringBefore("Tomcat","cat")} -->结果:"Tom"
    ${fn:substringBefore("mydata.txt",".txt")} -->结果:"mydata"
--------------------------------------------------fn:substringAfter 函数-------------------------------------------------
  用途:获取源字符串中指定目标子字符串之后的子字符串
  语法:
    fn:substringAfter(String source,String target) -------String;
    source -->指定源字符串;
    target -->指定目标子字符串;
    返回类型为 String
  注意:
    如果在源字符串中不包含特定子字符串,就返回空字符串。
  举例:
    ${fn:substringAfter("Tomcat","cat")} -->结果:""
    ${fn:substringAfter("mydata.txt","mydata.")} -->结果:"txt"
-------------------------------------------------------fn:split 函数------------------------------------------------------
  用途:将源字符串拆分为一个字符串数组
  语法:
    fn:split(String source,String delimiter) -------String[];
    source -->指定源字符串;
    delimiter -->指定用于拆分源字符串的分隔符;
    返回类型为 String[]
  注意:
    如果在源字符串中不包含delimiter参数指定的分隔符,或 delimiter参数为 null ,那么在返回的字符串数组中只有一个元素,为源字符串。
  举例1:

<c:set value="${fn:split("www.mywebsite.org",".")}" var="strs"/>
<c:forEach var="token" item="${strs}">
  ${token}<br/>
</c:forEach>

  输出结果为:
    www
    mywebsite
    org
  举例2:
    <c:set value="${fn:split("www.mywebsite.org","-")}" var="strs"/>
    ${strs[0]}
  输出结果为:
    www.mywebsite.org
-------------------------------------------------------fn:join 函数-----------------------------------------------------
  用途:将源字符串数组中的所有字符串连接为一个字符串
  语法:
    fn:join(String source[],String separator) -------String;
    source[] -->指定源字符串;
    separator -->指定用于连接源字符串数组中的各个字符串的分隔符;
    返回类型为 String
  举例:
    <c:set value="{"www","mywebsite","org"}" var="strs"/>
    ${fn:join(strs,".")}
  输出结果为:
    www.mywebsite.org
--------------------------------------------------fn:toLowerCase 函数-------------------------------------------------
  用途:将源字符串中的所有字符改为小写
  语法:
    fn:toLowerCase(String source) -------String;
    source -->指定源字符串;
    返回类型为 String
  举例:
    fn:toLowerCase("TomCat") -->结果:"tomcat"
--------------------------------------------------fn:toUpperCase 函数-------------------------------------------------
  用途:将源字符串中的所有字符改为大写
  语法:
    fn:toUpperCase(String source) -------String;
    source -->指定源字符串;
    返回类型为 String
  举例:
    fn:toLowerCase("TomCat") -->结果:"TOMCAT"
----------------------------------------------------------fn:trim 函数--------------------------------------------------
  用途:将源字符串中的开头和末尾的空格删除
  语法:
    fn:trim(String source) -------String;
    source -->指定源字符串;
    返回类型为 String
  举例:
    fn:trim(" Tom Cat ") -->结果:"Tom Cat"
---------------------------------------------------fn:escapeXml 函数--------------------------------------------------
  用途:将源字符串中的字符"<"、">"、空格和"&"等转换为转义字符,fn:escapeXml 函数的行为与 <c:out> 标签的 escapeXml 属性为 true 时的转换行为相同
  语法:
    fn:escapeXml(String source) -------String;
    source -->指定源字符串;
    返回类型为 String
  举例:
    ${fn:escapeXml("<b>表示粗体字</b>")} -->结果:&lt;b&gt;表示粗体字&lt;/b&gt;
    <c:out value="<b>表示粗体字</b>"></c:out> -->结果:&lt;b&gt;表示粗体字&lt;/b&gt;
    ${"<b>表示粗体字</b>"} -->结果:<b>表示粗体字</b>
-----------------------------------------------------fn:length 函数----------------------------------------------------
  用途:返回字符串中的字符的个数,或者集合和数组的元素的个数
  语法:
    fn:escapeXml(source) -------int;
    source -->字符串、集合或者数组;
    返回类型为 int
  举例:
    数组长度: ${fn:length(array)}
    集合长度: ${fn:length(list)}
    字符串长度: ${fn:length("Tomcat")}   

  小结:

    fn:containsIgnoreCase 函数 : 用于判断在源字符串中是否包含目标字符串 , 并且在判断时忽略大小写。

    fn:startsWith 函数 : 用于判断源字符串是否以指定的目标字符串开头。

    fn: endsWith 函数: 用于判断源字符串是否以指定的目标字符串结尾。

    fn:indexOf 函数: 用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引。

    fn:replace 函数: 用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。

    fn:substring 函数: 用于获取源字符串中的特定子字符串。

    fn:substringBefore 函数: 用于获取源字符串中指定子字符串之前的子字符串。

    fn: substringAfter 函数: 用于获取源字符串中指定子字符串之后的子字符串

    fn:split 函数: 用于将源字符串拆分为一个字符串数组。

    fn:join 函数: 用于将源字符串数组中的所有字符串连接为一个字符串。

    fn:toLowerCase 函数: 用于将源字符串中的所有字符改为小写。

    fn: toUpperCase 函数: 用于将源字符串中的所有字符改为大写。

    fn:trim 函数: 用于将源字符串中的开头和末尾的空格删除。

    fn:escapeXml 函数: 用于将源字符串中的字符"<"、">"、空格和"&"等转换为转义字符。

    fn:length 函数: 用于返回字符串中的字符的个数,或者集合和数组的元素的个数

六、实际运用:

UpdateTime--2017年3月3日11:55:32
1.EL表达式获取得到的值:1,2,3,4,根据指定字符显示不同内容

  方式一:使用${fn:contains(字符串,指定字符)}

<c:if test="${fn:contains(data.b04_02_05,1)}">无症状</c:if>
<c:if test="${fn:contains(data.b04_02_05,2)}">多饮</c:if>
<c:if test="${fn:contains(data.b04_02_05,3)}">多食</c:if>
<c:if test="${fn:contains(data.b04_02_05,4)}">多尿</c:if>
<c:if test="${fn:contains(data.b04_02_05,5)}">视力模糊</c:if>
<c:if test="${fn:contains(data.b04_02_05,6)}">感染</c:if>
<c:if test="${fn:contains(data.b04_02_05,7)}">手脚麻木</c:if>
<c:if test="${fn:contains(data.b04_02_05,8)}">下肢浮肿</c:if>
<c:if test="${fn:contains(data.b04_02_05,9)}">其他</c:if>
<c:if test="${fn:contains(data.b04_02_05,10)}">体重明显下降</c:if>

  UpdateTime--2017年3月8日21:46:39

  方式二:使用<c:forTokens></c:forTokens>标签实现

<c:forTokens items="${data.b04_02_05 }" delims="," var="num">
  <c:choose>
  <c:when test="${num==1 }">无症状</c:when>
<c:when test="${num==2 }">多饮</c:when>
<c:when test="${num==3 }">多食</c:when>
<c:when test="${num==4 }">多尿</c:when>
<c:when test="${num==5 }">视力模糊</c:when>
<c:when test="${num==6 }">感染</c:when>
<c:when test="${num==7 }">手脚麻木</c:when>
<c:when test="${num==8 }">下肢浮肿</c:when>
<c:when test="${num==9 }">其他</c:when>
<c:when test="${num==10 }">体重明显下降</c:when>
</c:choose>
</c:forTokens>

  方式三:使用${fn:split("字符串","分隔符")}

<c:forEach items="${fn:split(data.b04_02_05,',')}" var="num">
  <c:choose>
  <c:when test="${num==1 }">无症状</c:when>
<c:when test="${num==2 }">多饮</c:when>
<c:when test="${num==3 }">多食</c:when>
<c:when test="${num==4 }">多尿</c:when>
<c:when test="${num==5 }">视力模糊</c:when>
<c:when test="${num==6 }">感染</c:when>
<c:when test="${num==7 }">手脚麻木</c:when>
<c:when test="${num==8 }">下肢浮肿</c:when>
<c:when test="${num==9 }">其他</c:when>
<c:when test="${num==10 }">体重明显下降</c:when>
</c:choose>
</c:forEach>

相关推荐:

 

c-fmt-fn标签用法的更多相关文章

  1. jQuery中$.fn的用法示例介绍

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效,下面有个不错的示例,喜欢的朋友可以参考下 如扩展$.fn.abc(),即$.fn.abc()是对jquery ...

  2. JSTL函数标签库 fn标签

    JSTL函数标签库 fn标签 在使用jstl的函数标签库之前需要在页面中引入: <%@ taglib prefix="fn" uri="http://java.su ...

  3. <fmt:formatDate>标签的输出格式:

    <fmt:formatDate>标签的输出格式:  d   月中的某一天.一位数的日期没有前导零.      dd   月中的某一天.一位数的日期有一个前导零.      ddd   周中 ...

  4. H5 新标签用法及解释

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p ...

  5. 【JSP】<meta>标签用法

    转载自:http://blog.sina.com.cn/s/blog_65c74cce0102v39z.html  非常感谢这位博主,急着用,改日再细细品味重新整理这篇博文. http-equiv M ...

  6. Web前端设计:Html强制不换行<nobr>标签用法代码示例

    在网页排版布局中比如文章列表标题排版,无论多少文字均不希望换行显示,需要强制在一行显示完内容.这就可以nobr标签来实现.它起到的作用与word-break:keep-all 是一样的.nobr 是 ...

  7. JAVA中的break[标签]continue[标签]用法

    原文:JAVA中的break[标签]continue[标签]用法 注意:JAVA中的标签必须放在循环之前,且中间不能有其他语句.例如:tag:for或while或do--while; 1.使用brea ...

  8. Thinkphp中的内置标签用法

    Thinkphp中的内置标签有:Volist,Foreach,For,Switch,比较标签,范围判断标签,IF,Present,Empty,Defined,Assign,Define,标签嵌套,im ...

  9. ThinkPHP模板IF标签用法详解

    投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-07-01 我要评论 这篇文章主要介绍了ThinkPHP模板IF标签用法,需要的朋友可以参考下 ThinkPHP的IF标 ...

随机推荐

  1. 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录

    公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...

  2. MVC批量添加,增加一条记录的同时添加N条集合属性所对应的个体

    类别中包含一个产品的集合属性,如何向数据库添加一条类别记录的同时,添加任意多个产品. public class Product { [DisplayName("产品名称")] pu ...

  3. 解决“listView点击一个Item,另外几个Item也跟着改变”的问题

    如图所看到的: 我点击Item,右边的checkBox就会对应的变化.可是当我第一次做的时候.点击第一个Item,右边的checkBox变为绿色,可是当我listView往下拉的时候,发现以下也有是绿 ...

  4. python opencv 人脸识别

    def findface(image): import cv2  frame=cv2.imread('n1.jpg') classifier=cv2.CascadeClassifier("h ...

  5. Vulkan --vulkan in powervr

    zhankeng 跨平台 多线程 low cpu overhead object orientated vulkan有利于tile based的地方 明确依赖声明 细粒度同步 render passe ...

  6. 依赖注入 DI 控制反转 IOC MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. JavaScript生成GUID的方法

    一.生成GUID的方法一     JScript 代码   复制 function guid() { function S4() { return (((1+Math.random())*0x1000 ...

  8. 架构师书单 2nd Edition

    了2007年的目标,列了下面待读或重读的书单.    "其实中国程序员,现在最需要的是一张安静的书桌.",的确,中国架构师大多缺乏系统的基础知识,与其自欺欺人的宣扬"读书 ...

  9. what difference between libfm and libffm

    https://www.kaggle.com/users/25112/steffen-rendle/forum Congratulations to Yu-Chin, Wei-Sheng, Yong ...

  10. 控制系统音量,自己定义MPVolumeView

    近期有一个需求,就是控制系统的音量,我们都知道原理在mediaPlayer.framework框架下,有方法 <span style="font-size:18px;"> ...