我想显示一个list序列的title,但是有的title太长,不美观
所以我想控制下title长度,如果它过长,就只显示它前20个字符Action中代码如下:
     List list = new ArrayList();
    String title1 = "1234567890123456789";
    String title2 = "123456789012345";
    String title3 = "1234567890123456789012345";
    list.add(title1);list.add(title2);list.add(title3);
    request.setAttribute("list",list);jsp中代码如下
              <c:forEach items="${list }" var="nationalNews">
               ·[国际]<A href="/cam/news.do?method=show&id=${nationalNews.id }" target="_blank">
               <c:choose>
               <c:when test="${nationalNews.title 测试EL长度,怎么写}">如果大于20个字符,怎么写</c:when>
               <c:otherwise>${nationalNews.title }</c:otherwise>            <!-- 小于20个字符的情况 -->
               </c:choose>
            </c:forEach>
写到这里不会写了,该怎么写啊

解决方案 »

  1.   

                  <c:forEach items="${list }" var="nationalNews">
                      ·[国际]<A href="/cam/news.do?method=show&id=${nationalNews.id }" target="_blank">
                      <script type="text/javascript">
                        str = '${nationalNews.title }'
                        if (str.length <= 20)
                          document.write(str);
                        else
                          document.write(str.substr(0, 20) + '...');
                      </script>
                </c:forEach>试试
      

  2.   


    <c:set var="log.logTitle" value="做一个截取字符串长度的测试"
    <c:choose>
        <c:when test="${fn:length(log.logTitle) > 10}">
         <c:out value="${fn:substring(log.logTitle, 0, 10)}......" />
        </c:when>
        <c:otherwise>
         <c:out value="${log.logTitle}" />
        </c:otherwise>
       </c:choose>
      

  3.   

    jstl 
    ${fn:length(log.logTitle)
    返回长度