在后台action我其享一个list 集合,集合里可能有N条记录,当我在页面显示的时候,怎么样给相应的字符串进行截取,并显示在页面上.
比如名子的长度是20,而页面只能显示10,我要进行截取,并且显示出来,如何实现,请高手指教

解决方案 »

  1.   

    一个比较不好的处理方法:
    如果你这个LIST只用来显示,那么可以在后台ACTION打数据的时候事先全部SUBSTRING一下,前提,这个LIST只用来显示.另一个,如果想在页面上的话,写段SCRIPT吧
    <%
      List l = reqeust.getAttribute("list");
      Iteratot it = l.iterator();
      SomeBean bean = null;  while(it.hasNext()){
        bean = (SomeBean)it.next();
        out.print( (bean.XXXXX).subString(10) );
      }
    %>
      

  2.   

    回复楼上的,你可能没有明白我的意思,我的意思是说:当然在列这个list集合的时候,我先要对这个字段进行判断,如果字符串过长,进行截取,不长则不进行截取,这个时候需要调用一个方法来进行判断,
    代码:<logic:iterate id="gs" name="genshop">
       <dd>
        <h2>
          <a href="#" target="_blank">${gs.name}</a>//名称
        </h2>
        <ol>
          <li><a href="#" target="_blank">${gs.intro}</a></li>//内容
        </ol>  
       </dd>
    </logic:iterate>
    在列出来之后,有的名称可能会过长,需要进行截取,怎么样截取,并显示在该位置
      

  3.   

    我在后台(action)分别做了substring 的截取,可是把数据库里的值都给改了,
    public static List substringlist(List list ){
    List list1 = new ArrayList();
    if(list != null && list.size() >0){
    for(int i = 0 ; i < list.size() ; i++){
    SchoolAround around = new SchoolAround();
    around = (SchoolAround)list.get(i);
    String intros = around.getIntro();
    String name = around.getName();
    if(name.length() > 10){
    String names = name.substring(0, 10) + "...";
    around.setName(names);
    }
    if(intros.length() > 50){
    String intro = intros.substring(0,50)+"...";
    around.setIntro(intro);
    }
    list1.add(around);
    }
    }
    return list1;
    }
    是不是set的问题
      

  4.   

    <c:choose>
      <c:when test="${fn:length(dingdan.team_order_name) > 15 }">
       <c:out value="${fn:substring(dingdan.team_order_name,0,15) }"/>
      </c:when>
      <c:otherwise>
       <c:out value="${dingdan.team_order_name}"/>
      </c:otherwise>
     </c:choose>
    用页面标签判断一下再进行截取