我有一个这样的字符串:
<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个字符。我怎么能这样做?
答案 0 :(得分:1)
我不确定我是否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 变量包含类似于示例的字符串。
答案 1 :(得分:0)
您可以使用以下JSF HTML标记输出文本:
<h:outputText escape="false" value="Your content here" />