Как я могу написать новую строку в строке в ColdFusion? - PullRequest
27 голосов
/ 12 июня 2009

В настоящее время я помещаю строки в строки одним из следующих двух способов:

<cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" />

OR

<cfset NL=Chr(10) />
<cfset someStr="This is line 1#NL#This is line 2#NL#This is line 3" />

Есть ли что-нибудь более похожее на Java / C ++? Нечто подобное, я имею в виду:

<cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />

Ответы [ 7 ]

27 голосов
/ 12 июня 2009

Ваш путь правильный. В CF нет поддержки \ n или \ r. Из Live Docs

  • Chr (10) возвращает символ перевода строки
  • Chr (13) возвращает символ возврата каретки
  • Двухсимвольная строка Chr (13) & Chr (10) возвращает перевод строки Windows
16 голосов
/ 12 июня 2009

Если вы занимаетесь независимой от платформы разработкой, вы можете сделать:

<cfset NL = CreateObject("java", "java.lang.System").getProperty("line.separator")>

Например, в вашем application.cfm/cfc или где-то еще на высоком уровне и используйте его.

11 голосов
/ 12 июня 2009

Я использую это:

<cfset br = "#chr(13)##chr(10)#">
<cfset someStr="This is line 1#br#This is line 2#br#This is line 3" />
4 голосов
/ 12 июня 2009

Не напрямую в CF, я оставлю это чувакам CF-Java, чтобы сказать, можете ли вы использовать метод Java непосредственно в var CF для достижения того, что вы хотите, но ...

Вы можете использовать cfsavecontent для вставки естественных разрывов строк:

<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>

Затем проверьте это с помощью:

<code><cfoutput>
<pre>#Trim(someStr)#

Обратите внимание, что Trim () предназначен для того, чтобы избавиться от первого и последнего разрывов строк, если они вам не нужны.

0 голосов
/ 11 декабря 2018

Я искал способ вывести новую строку в <cfscript>, поэтому я решил оставить свой ответ для всех, кто поступил подобным образом:

writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.

writeOutput добавляется к потоку вывода страницы в виде html, поэтому вам нужно написать html, чтобы он вывел (это означает, что вы также можете включить &nbsp;, чтобы добавить пробелы для отступа ) * 1 010 *.

0 голосов
/ 27 декабря 2010

cfmail в формате CF8 с переводами строки и без добавления чего-либо. Похоже, что Adobe предоставит что-то конкретное по поводу «почему» и простой обходной путь. ... Юрисдикция

0 голосов
/ 12 июня 2009

Мне было интересно, сработает ли что-то подобное:

<code><cfset str = CreateObject("java", "java.lang.String").init("Line 1\nLine 2\nLine 3")>

<cfoutput>
<pre>#str#

Увы, нет: O (

...