Problem
In our scenario, I need to display a list of text in our Visualforce page. Some part of the text needs to be bold. I will explain this with the below simple but not working example:
page:
<apex:page controller="TestListOutputController"> <apex:repeat var="ot" value="{!outText}" > <div> {!ot} </div> </apex:repeat> </apex:page>
Controller:
public class TestListOutputController { public List<String> outText {get; set;} public TestListOutputController() { outText = new List<String>(); outText.add('Hello <Strong>World</Strong>'); outText.add('Sample <Strong>Text</Strong>'); } }
Obviously the strong tag here doesn’t work. I can walk around this if the number of bold blocks is fixed. However, what if it is something like a blog section, or a stackexchange answer section? How should I handle such situations?
Answer
If you want to enable markup, use an <apex:outputText>
with the escape
attribute set to false.
<apex:outputText escape="false" value="Hello <strong>world</strong>!" />
Be aware, though, that if you are trying to use this attribute in a managed package, it will likely cause you to fail security review.