У меня есть таблица базы данных, которая представляет собой словарь определенных терминов - ключ, значение. Я хочу загрузить словарь из области приложения из базы данных и сохранить его там для производительности (он не изменяется).Список статических ключей/значений ColdFusion?
Я понимаю, что это, вероятно, какая-то «структура», но я чрезвычайно новый для ColdFusion (помогая другой команде).
Затем я хотел бы сделать некоторую простую замену строк на некоторые строки, которые выводятся в браузер, перебирая определенные термины и заменяя термины некоторым HTML, чтобы определить термины (наведение или ссылка, подробности на выработать позже, не важно).
Это код, в настоящее время в файле Application.cfc:
<cffunction name="onApplicationStart">
<cfquery name="qryDefinedTerms" datasource="mydsn">
SELECT term, definition FROM definedterms
</cfquery>
<cfset application.definedterms = Array(1)>
<cfloop query="qryDefinedTerms">
<cfset myHash = structNew()>
<cfset myHash.put("term", qryDefinedTerms.term)>
<cfset myHash.put("definition", qryDefinedTerms.definition)>
<cfset ArrayAppend(application.definedterms, myHash)>
</cfloop>
</cffunction>
Страница вызова пытается использовать его следующим образом:
function ReplaceDefinitions(inputstring) {
for (thisdef = 1 ;
thisdef LTE ArrayLen(application.definedterms);
thisdef = (thisdef+1)) {
inputstring = Replace(inputstring,
application.definedterms(thisdef).term,
application.definedterms(thisdef).definition, "ALL");
}
return inputstring;
}
Когда я вызываю функцию, я получаю обратно: «Элемент DEFINEDTERMS не определен в ПРИЛОЖЕНИИ».
Edit: принуждая вызов OnApplicationStart() работал, по-видимому, Application.cfc Cold Fusion является не нравится web.config ASP.NET, его изменение не сбрасывает приложение.
Вероятно тупой вопрос, но вы перезапуск приложения после добавления нового кода? Если вы просто изменили application.cfc без перезапуска, структура не была бы создана (поскольку метод onApplicationStart уже запущен). Я сталкивался с этим несколько раз. – derivation
Dummie me, исходящий из ASP.NET, я предположил, что редактирование файла application.cfc будет делать трюк - тем более что изменения, которые я делаю для application.cfc, вызывают ошибки, когда они не компилируются. Как сбросить приложение? (У меня есть только доступ к файловому серверу на сервере, нет доступа к инструментам администрирования CF.) – richardtallent