使StringTemplate限制字符串长度的最佳方法是什么?

时间:2013-03-21 06:14:05

标签: java jsp stringtemplate

使用代码示例最容易解释。在某些情况下,我们有列表项有很多文本,但显示的不仅仅是前几个单词没用,这就是我们在JSP中处理它的方式:

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

过滤器有一些逻辑可以避免切割单词,并包含一个“...”来表示截断,依此类推。即:

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

使用格式化程序是否有一种巧妙的方法。我知道我可能会做这样的事情,但看起来有点hacky,因为我们在不同的地方使用不同的数字:

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

1 个答案:

答案 0 :(得分:0)

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

public class ShortenTag extends TagSupport{

  private static final int MAX_LENGTH = 30; 

  public int doStartTag(){

    // shorten string here
  }


}