2013-03-21 4 views
1

Это проще всего объяснить с помощью примера кода. В некоторых случаях, у нас есть список элементов, которые имеют много текста, но показывает больше, чем первые несколько слов не полезно, это то, как мы имеем дело с ним в JSP:Лучший способ заставить StringTemplate ограничить длину строки?

<% 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

Самый простой способ настроить тег, например,

public class ShortenTag extends TagSupport{ 

    private static final int MAX_LENGTH = 30; 

    public int doStartTag(){ 

    // shorten string here 
    } 


} 
+0

Поиск по Google для «stringtemplate TagSupport» в основном возвращает этот пост. Я посмотрю, есть ли какая-либо информация об этой вещи, о которой вы упоминаете. – Jacob

Смежные вопросы