1

使用代码示例最容易解释这一点。在某些场景中,我们的列表项有很多文本,但是显示超过前几个单词并没有用,这就是我们在 JSP 中的处理方式:

<% for(Item item : items) { %>
<li><%=StringHelper.shorten(item.getValue(),30))%></a></li>
<% } %>

过滤器有一些逻辑可以避免切割单词,并包括一个“...”来表示截断,等等。IE:

<li>Some text</li>
<li>Some other text that is longer...</li>

有没有一种巧妙的方法可以使用格式化程序来做到这一点。我知道我可能可以做这样的事情,但它似乎有点 hacky,因为我们在不同的位置使用不同的数字:

$items:{i|<li>$i.value;format="max30"$</li>}$
4

1 回答 1

0

最简单的方法是自定义标签,例如

public class ShortenTag extends TagSupport{

  private static final int MAX_LENGTH = 30; 

  public int doStartTag(){

    // shorten string here
  }


}
于 2013-03-21T07:22:20.677 回答