как отображать контент с фиксированной длиной? - PullRequest
1 голос
/ 23 октября 2011

У меня есть такая строка:

<p><strong>Make sure you’re paying the right price for your household and trade services with pricing calculators from Australia’s largest online services marketplace, ServiceSeeking.com.au </strong></p>. 

Я хочу отобразить часть этой строки с <h:outputText escape="false"> (только содержимое, без HTML-тега).Я попытался substring(), но я не знаю, где заканчивается HTML-тег, поэтому моя форма повреждена.Я хочу получить только около 100 символов.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 23 октября 2011

Я не уверен, правильно ли я понял ваш вопрос на 100%, но если все строки, которые вы хотите отобразить, имеют приблизительный формат из вашего примера, вы можете отобразить их без HTML и сократить до 100 символов следующим образом:

<h:outputText value="#{textExtractorBean.extractedText}"/>

И это боб:

class TextExtractorBean{
...
  getExtractedText(){
    Pattern pattern = Pattern.compile("<([a-z])+>");
    Matcher matcher = pattern.matcher(text);

    int firstIdxAfterOpeningTags = 0;
    while(matcher.find()){
        firstIdxAfterOpeningTags = matcher.end();
    }

    pattern = Pattern.compile("</([a-z])+>");
    matcher = pattern.matcher(text);

    int firstIdxBeforeClosingTags = text.length();
    if(matcher.find()){
        firstIdxBeforeClosingTags = matcher.start();
    }

    String extractedText = text.substring(firstIdxAfterOpeningTags,
            firstIdxBeforeClosingTags);
    String shortenedText = extractedText.length() > 0 ? extractedText
            .substring(0,100) : extractedText;
    return shortenedText;
  }
...
}

Где text переменная содержит строку, как в вашем примере.

0 голосов
/ 23 октября 2011

Вы можете вывести текст с помощью следующего тега JSF HTML:

<h:outputText escape="false" value="Your content here"  />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...