使用代码示例最容易解释。在某些情况下,我们有列表项有很多文本,但显示的不仅仅是前几个单词没用,这就是我们在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>}$
答案 0 :(得分:0)
最简单的方法是自定义标签,例如
public class ShortenTag extends TagSupport{
private static final int MAX_LENGTH = 30;
public int doStartTag(){
// shorten string here
}
}