Подтвердить что ты не робот

Как написать новую строку в строке в ColdFusion?

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

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

ИЛИ

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

Есть ли что-то более похожее на способ Java/С++? Что-то вроде этого я имею в виду:

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

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

<cfset br = "#chr(13)##chr(10)#">
<cfset someStr="This is line 1#br#This is line 2#br#This is line 3" />

Ответ 4

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

Вы можете использовать cfsavecontent, чтобы поместить естественные разрывы строк в:

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

Затем проверьте его:

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

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

Ответ 5

Мне было интересно, будет ли что-то вроде этого работать:

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

<cfoutput>
<pre>#str#</pre>
</cfoutput>

Увы, нет: O (

Ответ 6

CF8 отформатировал cfmail с фидами строк и без добавления чего-либо. Похоже, что Adobe предоставит что-то СПЕЦИФИЧНО о "почему" и о простой работе. ... Jurisdictionary

Ответ 7

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

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

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