jstl的常用标签(用时再学)

比如我们为了处理日期的问题,传统我们要写一个类,然后对数据进行转型,而再JSTL面本身就有了一个处理日期格式的标签:

<fmt:formatDate value="${arr.createdDate}" type="date" pattern="yyyy/MM/dd" var="date"/>这样就对arr.createdDate的时间格式进行了转型,然后我们在用的时候只要用EL调这个标签即可${date}。

<c:forEach var="item" items="${boxIds}" varStatus="status">
<input type="hidden" name="boxIds" value="${item}"/>
</c:forEach>

<ec:exportXls fileName="中文.xls" tooltip="Export Excel"/>
<ec:row highlightRow="false" οnclick="alert( '${pres.eqp_cod}');"

οnmοuseοver="this.style.cursor='pointer'"
interceptor="org.ofbiz.aomp.war.MarkerIntercept"
>

一条记录拆分成多行,解决序号自增问题:

  <c:set var="row" value="0" />
        <c:forEach items="${backStoreInfoList}" var="backStoreInfo" varStatus="status">
      <tr align="center">
          <c:set var="row" value="${row+1}" />      
       <td >${row}</td>
          <td>${backStoreInfo.SERVDOCID}</td>
          <td>${backStoreInfo.APPMATERIELID}</td>
          <td>故障件</td>
          <td>故障件退库</td>
          <td>${backStoreInfo.FAULTSTORECOUNT}</td>
          <td ><input name="boxId" type="text" /></td>
    </tr>
     <tr align="center">
     <c:set var="row" value="${row+1}" />
       <td >${row}</td>
          <td>${backStoreInfo.SERVDOCID}</td>
          <td>${backStoreInfo.COMFIRMMATERIELID}</td>
          <td>DOA件</td>
             <td>DOA件退库</td>
          <td>${backStoreInfo.DOASTORECOUNT}</td>
          <td ><input name="boxId" type="text" /></td>
    </tr>
    <tr align="center">
     <c:set var="row" value="${row+1}" />
       <td >${row}</td>
          <td>${backStoreInfo.SERVDOCID}</td>
          <td>${backStoreInfo.COMFIRMMATERIELID}</td>
          <td>良品件</td>
             <td>良品件退库</td>
          <td>${backStoreInfo.GOODSTORECOUNT}</td>
          <td ><input name="boxId" type="text" /></td>
    </tr>
     </c:forEach>

 

 拆分字符串在JSP页面

转自:http://www.cnblogs.com/huhu/articles/116855.html

在定制标记中使用 JSTL 函数库

JSTL 1.1 提供了一个函数库来实现许多有用的字符串操作。以下代码尝试使用 JSTL 的 fn:split() 函数将字符串 (a1/a2//b//c1/c2/c3) 拆分为三个标记(a1/a2、bc1/c2/c3):

 

<!-- SplitTest.jsp -->

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

<p>fn:split -
<c:set var="str" value="a1/a2//b//c1/c2/c3"/>
<c:set var="delim" value="//"/>
<c:set var="array" value="${fn:split(str, delim)}"/>
<c:forEach var="token" items="${array}">
[<c:out value="${token}"/>]
</c:forEach>

 

上面的代码未生成所要的结果,这是因为 fn:split() 是基于 java.util.StringTokenizer 的,后者将 delim 参数作为一组分隔字符处理。以下是 SplitTest.jsp 生成的输出:

 

fn:split - [a1] [a2] [b] [c1] [c2] [c3] 

 

JSTL 提供了其他字符串函数(如 fn:contains()、fn:substringBefore()fn:substringAfter()),可以通过循环使用这些函数将 a1/a2//b//c1/c2/c3 拆分为 a1/a2、bc1/c2/c3。该循环由 <u:while> 标记控制:

 

 
<!-- WhileTest.jsp -->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="u" uri="/WEB-INF/util.tld" %>

<p>u:while -
<c:set var="str" value="a1/a2//b//c1/c2/c3"/>
<c:set var="delim" value="//"/>
<u:while test="/${fn:contains(str, delim)}">
[<c:out value="${fn:substringBefore(str, delim)}"/>]
<c:set var="str" value="${fn:substringAfter(str, delim)}"/>
</u:while>
[<c:out value="${str}"/>]

 

请注意,$ 字符在 test 条件中使用反斜杠进行了转义。因此,JSP 容器将 test 属性的值作为文本处理,而不求解 JSP 表达式的值。<u:while> 标记由 WhileTag 类处理,该类在每此迭代前求解 ${fn:contains(str, delim)} 表达式。${fn:substringBefore(str, delim)} 表达式返回字符串的第一个标记,而 ${fn:substringAfter(str, delim)} 返回剩余标记。WhileTest.jsp 页面生成所要的输出:

 

u:while - [a1/a2] [b] [c1/c2/c3] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值