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 `<br/>`.
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