나는 정의 된 용어 (키, 값)의 사전 인 데이터베이스 테이블을 가지고있다. 데이터베이스에서 응용 프로그램 범위의 사전을로드하고 성능을 유지하기 위해 사전을로드하려고합니다 (변경되지 않음).ColdFusion 정적 키/값 목록?
나는 아마도 "struct"라고 일컫는 바가 있지만, 은 매우 (다른 팀을 도와 줌)입니다.
그런 다음 브라우저에 출력되는 일부 문자열에 대해 간단한 문자열 바꾸기를 수행하고 정의 된 용어를 반복하며 단어를 마우 가지 또는 링크로 정의하는 일부 HTML로 바꾸기를 원합니다. 중요한 것은 아니지만 나중에 연습해야 함). 나는 함수를 호출 할 때
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;
}
가, 내가 돌아올 :
이<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>
호출 페이지가 다음과 같이 사용을 시도 :
이것은 application.cfc 파일에 현재 코드는 다음과 같습니다 "DEFINEDTERMS 요소가 응용 프로그램에서 정의되지 않았습니다."
편집 : ColdFusion의 application.cfc는 ASP.NET의 web.config와 같지 않습니다. OnApplicationStart()가 호출되면 응용 프로그램이 재설정되지 않습니다.
아마 바보 같은 질문을 사용하는 경우는 < 짧은 = 및 ++ 연산자를 사용할 수 있습니다,하지만 당신은 당신이 새로운 코드를 추가하기 때문에 응용 프로그램을 다시 시작한 참고 :? 다시 시작하지 않고 application.cfc를 방금 수정 한 경우에는 onApplicationStart 메소드가 이미 실행되었으므로 구조체가 작성되지 않았을 것입니다. 나는 몇 번 전에 이것에 빠져 들었다. – derivation
Dummie 내가 ASP.NET에서 왔을 때, 나는 application.cfc 파일을 편집하는 것이 트릭을 할 것이라고 생각했습니다. 특히 컴파일하지 않을 때 application.cfc에 대한 변경 사항을 던지기 때문에. 응용 프로그램을 어떻게 재설정합니까? (나는 단지 서버에 대한 파일 서버 액세스 권한이 있으며 CF 관리 도구에 액세스 할 수 없습니다.) – richardtallent