2017-10-29 10 views
2

내 페이지의 모든 사용자 입력의 유효성을 검사하는 서버 측 유효성 검사 코드를 작성하고 싶습니다. 이 모든 서버 측 유효성 검사를 프레젠테이션 계층에서 유지하고 싶습니다. 이제 구성 요소를 만들고 내부의 모든 유효성 검사 기능을 유지할 것입니다. 내 사용자 페이지의 유효성 검사 방법에 액세스하려면 <cfinvoke> 태그를 사용합니다. 하지만 문제는 약 50 개의 사용자 입력에 대해 유효성 검증을 적용해야하고 <cfinvoke> 태그를 50 번 사용해야한다는 것입니다. 누구든지 <cfinvoke>을 여러 번 사용하면 성능에 영향을 주거나 함께 갈 수있는 다른 더 나은 방법이 있다고 말해 줄 수 있습니까?ColdFusion에서 <cfinvoke> 사용

답변

3

<cfinvoke>을 사용하여 눈에 띄는 오버 헤드가 없습니다. 그러나 나는 여전히 여기에서 그것을 피하도록 당신을 추천 할 것입니다.

Validator.cfc

<cfcomponent> 

    <cffunction name="validateX" access="public" ...> 
     ... 
    </cffunction> 
    <cffunction name="validateY" access="public" ...> 
     ... 
    </cffunction> 
    <cffunction name="validateZ" access="public" ...> 
     ... 
    </cffunction> 

</cfcomponent> 

controller.cfm 이제

<cfset validator = new Validator()> 

<cfset validator.validateX(...)> 
<cfset validator.validateY(...)> 
<cfset validator.validateZ(...)> 
... 

쉽게 검증 결과와 함께 작업 할 수 있습니다 대신이 (예)를 고려한다.

당신은 부울 반환하는 경우 : 당신이 오류가있는 배열을 반환하는 경우

<cfif validator.validateX(...)> 
    ... 
<cfelse> 
    ... 
</cfif> 

가 :

<cfset errors = []> 
<cfset errors.addAll(validator.validateX(...))> 
<cfset errors.addAll(validator.validateY(...))> 
<cfset errors.addAll(validator.validateZ(...))> 

<cfinvoke>이 클래스 (new Validator()을)의 인스턴스를 생성하고 호출 같은 방법으로 validateX(...) 방법. 주요 차이점은 인스턴스가 모두 <cfinvoke>에 새로 생성되고 반환 값을 입력 변수 (returnVariable)로 지정해야하므로 대부분의 경우 성 가시니다.

+0

감사합니다. Alex. 의 사용 방법과 사용 방법의 차이점을 설명해 주시겠습니까? 나는 콜드 퓨전을 처음 접했습니다. 당신의 방법은 더 가독성이있는 것처럼 보입니다. –

+0

작동 중입니다. 좋아했습니다. –

+0

차가운 퓨전 9에서이 접근 방식을 사용할 수 있습니까? –