Я работаю над приложением, основанным на Railo4, и у меня возникает интересная проблема. Я не делаю ничего нового здесь, пока идет код ColdFusion. просто беря некоторые строки, конкатенируя там, где это необходимо, и возвращаю строку.Проблема конкатенации строк с Railo4
<cffunction name="customBuildURL" access="public" returntype="string">
<cfargument name="subsystem" type="string" required="true" />
<cfargument name="section" type="string" required="true" />
<cfargument name="item" type="string" required="true" />
<cfargument name="args" type="string" required="true" />
<cfset var url = "index.cfm?action=" & ARGUMENTS.subsystem & ":" & ARGUMENTS.section />
<cfif Ucase(ARGUMENTS.item) NEQ "DEFAULT" >
<cfset url &= "." & ARGUMENTS.item />
</cfif>
<cfif ARGUMENTS.args NEQ "" >
<cfset url &= ARGUMENTS.args />
</cfif>
<cfreturn url />
</cffunction>
Однако у меня возникают две необычные ошибки.
1) Первое: Can't cast Complex Object Type Struct to String
и сообщается по следующим двум направлениям:
<cfset url &= "." & ARGUMENTS.item />
<cfset url &= ARGUMENTS.args />
2) Во-вторых, the function customBuildURL has an invalid return value , can't cast Object type [url] to a value of type [string]
при возврате переменной url
.
Как вы можете видеть, я не делаю ничего сложного здесь. Просто установите несколько строк, объедините их, а затем верните. Я не вижу, где создается «Объект» и создается как строка. Я дважды проверил использование оператора &=
, и это не кажется проблемой, потому что если я делаю url = url & "." & ARGUMENTS.item
, то сообщается об этой же ошибке.
Любые идеи?
Что произойдет, если вы используете переменную, отличную от URL? Я предполагаю, что он все еще тянет в структуре URL. –
Это исправлено! Хотелось бы, чтобы вы отправили это как ответ, я мог бы дать вам за это честь. Я уставился на это часами, но не понял, что совершил ошибку newb. Область URL противоречила моей переменной! D'OH! В любом случае, переменная 'url' изменилась на' actionURL', и теперь все работает! Спасибо Мэтту! Иногда вам нужен дополнительный набор глаз, когда вы слишком долго смотрели на него. –
Нет проблем. Я написал это как ответ. –