newline character on text area

apex-code, salesforce, visualforce

Solution

I think I found the issue, you have two escape character slashes (`\\n`), but only one is needed because the slash in `\n` does not need to be escaped in this context.

Also, Salesforce saves a new line as `\r\n`. Try this:

this.customobj.Current_Address__c 
    = currentStreet + ' \r\n' 
    + currentCity + ' ' + currentState  + ' ' + currentZIP  + ' \r\n' 
    + currentCountry;

This method works when using an `<apex:outputfield>` with an sObject field.

<apex:outputtext value="{!myCustomSObject__c.Address__c}"/>

If you're using a different Visualforce Component, it won't work. Visualforce renders the new line in HTML when using a `<apex:outputtext>` Component, but HTML ignores new lines. If you use a `<br/>` tag, Visualforce renders it as `&lt;br/&gt;`.

The best solution I could come up with for rendering a variable that has new lines in it (rather than an sObject field) is to use a disabled `<apex:inputtextarea>`.

<apex:inputtextarea value="{!myAddress}" disabled="true" readonly="true">
</apex:inputtextarea>

Problem

I have a custom field called Current_Address__c which is of datatype textarea. I need to populate this field in the format below. ie a newline char after street and another newline after zip. street City state Zip Country The values of city state zip country etc are been taken from contact object. I dont want to use this as a formula field. So i need to populate it in my controller and display it on my VF page. I am trying to add a newline char by using the code below ``` this.customobj.Current_Address__c = currentStreet + '\\n ' + currentCity + ' ' + currentState + ' ' + currentZIP + '\\n ' + currentCountry ; ``` i had also used \n instead of \n. It still show the field in one line instead of 3 lines EDIT I got this working using the following code. I would accept mathews answer as it would work with outputfield. ``` currentAddress = currentStreet; currentAddress += '\r\n'; currentAddress += currentCity + + ' ' + currentState + ' ' + currentZIP ; currentAddress += '\r\n'; currentAddress += currentCountry; ``` This works only if you use +=. not sure why this happens

Original source